From 0e2f6e5c52034ee52c54e5241bb8394822f837bf Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 21 Oct 2017 23:17:14 +0200 Subject: [PATCH] Fix memory leak in wxGTK RunScriptSync() We must call g_object_unref() on an object that we called g_object_ref() before. --- src/gtk/webview_webkit2.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp index c33b02712b..dcd8639335 100644 --- a/src/gtk/webview_webkit2.cpp +++ b/src/gtk/webview_webkit2.cpp @@ -1103,7 +1103,10 @@ static void wxgtk_run_javascript_cb(WebKitWebView *, GAsyncResult *res, GAsyncResult **res_out) { + // Ensure that it doesn't get freed by the time we use it in + // RunScriptSync() itself. g_object_ref(res); + *res_out = res; } @@ -1126,6 +1129,9 @@ bool wxWebViewWebKit::RunScriptSync(const wxString& javascript, wxString* output wxWebKitJavascriptResult js_result(webkit_web_view_run_javascript_finish(m_web_view, result, error.Out())); + // Match g_object_ref() in wxgtk_run_javascript_cb() + g_object_unref(result); + if ( !js_result ) { wxLogWarning(_("Error running Javascript: %s"), error.GetMessage());