From 3290a9d174e9ab22194de9851dcc719ed8637306 Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Wed, 19 Jun 2024 18:26:30 +0200 Subject: [PATCH] [quickjs] event ref|unref --- src/ecmascript/quickjs/event.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ecmascript/quickjs/event.c b/src/ecmascript/quickjs/event.c index 9a6d62ba3..86ff267e3 100644 --- a/src/ecmascript/quickjs/event.c +++ b/src/ecmascript/quickjs/event.c @@ -71,9 +71,11 @@ js_event_get_property_bubbles(JSContext *ctx, JSValueConst this_val) if (!event) { return JS_NULL; } + dom_event_ref(event); bool bubbles = false; dom_exception exc = dom_event_get_bubbles(event, &bubbles); JSValue r = JS_NewBool(ctx, bubbles); + dom_event_unref(event); RETURN_JS(r); } @@ -91,9 +93,11 @@ js_event_get_property_cancelable(JSContext *ctx, JSValueConst this_val) if (!event) { return JS_NULL; } + dom_event_ref(event); bool cancelable = false; dom_exception exc = dom_event_get_cancelable(event, &cancelable); JSValue r = JS_NewBool(ctx, cancelable); + dom_event_unref(event); RETURN_JS(r); } @@ -131,9 +135,11 @@ js_event_get_property_defaultPrevented(JSContext *ctx, JSValueConst this_val) if (!event) { return JS_NULL; } + dom_event_ref(event); bool prevented = false; dom_exception exc = dom_event_is_default_prevented(event, &prevented); JSValue r = JS_NewBool(ctx, prevented); + dom_event_unref(event); RETURN_JS(r); } @@ -151,6 +157,7 @@ js_event_get_property_target(JSContext *ctx, JSValueConst this_val) if (!event) { return JS_NULL; } + dom_event_ref(event); dom_event_target *target = NULL; dom_exception exc = dom_event_get_target(event, &target); @@ -159,6 +166,7 @@ js_event_get_property_target(JSContext *ctx, JSValueConst this_val) } JSValue r = getElement(ctx, target); dom_node_unref(target); + dom_event_unref(event); RETURN_JS(r); } @@ -176,15 +184,18 @@ js_event_get_property_type(JSContext *ctx, JSValueConst this_val) if (!event) { return JS_NULL; } + dom_event_ref(event); dom_string *typ = NULL; dom_exception exc = dom_event_get_type(event, &typ); if (exc != DOM_NO_ERR || !typ) { JSValue r = JS_NewString(ctx, ""); + dom_event_unref(event); RETURN_JS(r); } JSValue r = JS_NewString(ctx, dom_string_data(typ)); dom_string_unref(typ); + dom_event_unref(event); RETURN_JS(r); } @@ -202,7 +213,9 @@ js_event_preventDefault(JSContext *ctx, JSValueConst this_val, int argc, JSValue if (!event) { return JS_NULL; } + dom_event_ref(event); dom_event_prevent_default(event); + dom_event_unref(event); return JS_UNDEFINED; }