From f6a81fe5f29cc7e4d4a8de07baeffe1994996f98 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 17 Dec 2025 12:19:32 +0000 Subject: [PATCH] WebBrowserComponent: On Linux, avoid asserting when no callback is passed to evaluateJavascript() --- .../native/juce_WebBrowserComponent_linux.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp b/modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp index e8bb2f0e72..d71564f253 100644 --- a/modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp +++ b/modules/juce_gui_extra/native/juce_WebBrowserComponent_linux.cpp @@ -1332,10 +1332,9 @@ public: g.fillAll (Colours::white); } - void evaluateJavascript (const String& script, WebBrowserComponent::EvaluationCallback callback) override + void evaluateJavascript (const String& script, EvaluationCallback callback) override { - if (callback != nullptr) - evaluationCallbacks.push_back (std::move (callback)); + evaluationCallbacks.push_back (std::move (callback)); CommandReceiver::sendCommand (outChannel, "evaluateJavascript", @@ -1346,7 +1345,7 @@ public: { const auto params = FromVar::convert (paramsIn); - if (! params.has_value() || evaluationCallbacks.size() == 0) + if (! params.has_value() || evaluationCallbacks.empty()) { jassertfalse; return; @@ -1368,7 +1367,7 @@ public: }); auto& cb = evaluationCallbacks.front(); - cb (result); + NullCheckedInvocation::invoke (cb, result); evaluationCallbacks.pop_front(); }