diff options
author | Quentin Rameau <quinq@fifth.space> | 2024-03-24 15:21:59 +0100 |
---|---|---|
committer | Rafael Marçalo <raroma09@gmail.com> | 2024-06-10 21:13:55 +0100 |
commit | 12a8a549a0e1d54f6f7ee60ae24e597236feb240 (patch) | |
tree | 3ffb81eb049a2f21a1b25f018787c8e0f8fe3809 /webext-surf.c | |
parent | df74f11b65c2414d938d7781e5dc6a69e52394d0 (diff) |
webext: Free JavaScript objects
Webkit documentation says JavaScript objects refcount is always
increased, and has to be released always.
Diffstat (limited to 'webext-surf.c')
-rw-r--r-- | webext-surf.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/webext-surf.c b/webext-surf.c index 84191f3..230c71b 100644 --- a/webext-surf.c +++ b/webext-surf.c @@ -25,6 +25,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused) static char js[48], msg[MSGBUFSZ]; WebKitWebPage *page; JSCContext *jsc; + JSCValue *jsv; GError *gerr = NULL; gsize msgsz; @@ -48,6 +49,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused) return TRUE; jsc = webkit_frame_get_js_context(webkit_web_page_get_main_frame(page)); + jsv = NULL; switch (msg[1]) { case 'h': @@ -56,7 +58,7 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused) snprintf(js, sizeof(js), "window.scrollBy(window.innerWidth/100*%hhd,0);", msg[2]); - jsc_context_evaluate(jsc, js, -1); + jsv = jsc_context_evaluate(jsc, js, -1); break; case 'v': if (msgsz != 3) @@ -64,10 +66,14 @@ readsock(GIOChannel *s, GIOCondition c, gpointer unused) snprintf(js, sizeof(js), "window.scrollBy(0,window.innerHeight/100*%hhd);", msg[2]); - jsc_context_evaluate(jsc, js, -1); + jsv = jsc_context_evaluate(jsc, js, -1); break; } + g_object_unref(jsc); + if (jsv) + g_object_unref(jsv); + return TRUE; } |