From d631d32518f9b6f1a7462bfea06f3a342a134126 Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Wed, 19 Jun 2024 16:53:31 +0200 Subject: [PATCH] [quickjs] attr more ref|unref --- src/ecmascript/quickjs/attr.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/ecmascript/quickjs/attr.c b/src/ecmascript/quickjs/attr.c index f2153169..b9fe591a 100644 --- a/src/ecmascript/quickjs/attr.c +++ b/src/ecmascript/quickjs/attr.c @@ -48,14 +48,17 @@ js_attr_get_property_name(JSContext *ctx, JSValueConst this_val) if (!attr) { return JS_NULL; } - + dom_node_ref(attr); err = dom_attr_get_name(attr, &name); + if (err != DOM_NO_ERR || name == NULL) { + dom_node_unref(attr); return JS_NULL; } r = JS_NewStringLen(ctx, dom_string_data(name), dom_string_length(name)); dom_string_unref(name); + dom_node_unref(attr); RETURN_JS(r); } @@ -84,13 +87,16 @@ js_attr_get_property_value(JSContext *ctx, JSValueConst this_val) if (!attr) { return JS_NULL; } + dom_node_ref(attr); err = dom_attr_get_value(attr, &value); if (err != DOM_NO_ERR || value == NULL) { + dom_node_unref(attr); return JS_NULL; } r = JS_NewStringLen(ctx, dom_string_data(value), dom_string_length(value)); dom_string_unref(value); + dom_node_unref(attr); RETURN_JS(r); }