summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-12-04 18:15:14 +0000
committerVincent Sanders <vince@netsurf-browser.org>2012-12-04 18:15:14 +0000
commit0718d809180b1bff9c83f4475be4cb918a8564e2 (patch)
treedf2ce28bd58a73ba32e975abbba9c8984c2741a5
parent897acff532415ed81f9066b8b811ae744918da84 (diff)
downloadnetsurf-0718d809180b1bff9c83f4475be4cb918a8564e2.tar.gz
netsurf-0718d809180b1bff9c83f4475be4cb918a8564e2.tar.bz2
abstract out GC root manipulation for js values
-rw-r--r--javascript/jsapi.c4
-rw-r--r--javascript/jsapi.h9
2 files changed, 11 insertions, 2 deletions
diff --git a/javascript/jsapi.c b/javascript/jsapi.c
index eebb33fee..73153fe09 100644
--- a/javascript/jsapi.c
+++ b/javascript/jsapi.c
@@ -315,14 +315,14 @@ js_dom_event_add_listener(jscontext *ctx,
JSLOG("adding %p to listener", private);
- JS_AddValueRoot(cx, &private->funcval);
+ JSAPI_ADD_VALUE_ROOT(cx, &private->funcval);
exc = dom_event_target_add_event_listener(private->node,
private->type,
private->listener,
true);
if (exc != DOM_NO_ERR) {
JSLOG("failed to add listener");
- JS_RemoveValueRoot(cx, &private->funcval);
+ JSAPI_REMOVE_VALUE_ROOT(cx, &private->funcval);
}
return true;
diff --git a/javascript/jsapi.h b/javascript/jsapi.h
index 6b0f1124d..04932905e 100644
--- a/javascript/jsapi.h
+++ b/javascript/jsapi.h
@@ -150,6 +150,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx,
#define JSAPI_ADD_OBJECT_ROOT(cx, obj) JS_AddRoot(cx, obj)
#define JSAPI_REMOVE_OBJECT_ROOT(cx, obj) JS_RemoveRoot(cx, obj)
+#define JSAPI_ADD_VALUE_ROOT(cx, obj) JS_AddRoot(cx, obj)
+#define JSAPI_REMOVE_VALUE_ROOT(cx, obj) JS_RemoveRoot(cx, obj)
+
#elif JS_VERSION == 180
/************************** Spidermonkey 1.8.0 **************************/
@@ -263,6 +266,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx,
#define JSAPI_ADD_OBJECT_ROOT(cx, obj) JS_AddRoot(cx, obj)
#define JSAPI_REMOVE_OBJECT_ROOT(cx, obj) JS_RemoveRoot(cx, obj)
+#define JSAPI_ADD_VALUE_ROOT(cx, obj) JS_AddRoot(cx, obj)
+#define JSAPI_REMOVE_VALUE_ROOT(cx, obj) JS_RemoveRoot(cx, obj)
+
#else /* #if JS_VERSION == 180 */
@@ -365,6 +371,9 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx,
#define JSAPI_ADD_OBJECT_ROOT(cx, obj) JS_AddObjectRoot(cx, obj)
#define JSAPI_REMOVE_OBJECT_ROOT(cx, obj) JS_RemoveObjectRoot(cx, obj)
+#define JSAPI_ADD_VALUE_ROOT(cx, val) JS_AddValueRoot(cx, val)
+#define JSAPI_REMOVE_VALUE_ROOT(cx, val) JS_RemoveValueRoot(cx, val)
+
#endif
#define JSLOG(args...) LOG((args))