summaryrefslogtreecommitdiff
path: root/javascript/jsapi.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2013-06-02 20:58:57 +0100
committerVincent Sanders <vince@kyllikki.org>2013-06-02 21:00:32 +0100
commitae6058c15c4dbf1c067fac45cd092afeefa68a53 (patch)
tree6e28e5e986189d9d09f540d6298424850aea1fa8 /javascript/jsapi.h
parentf2a6d645ae24ab49828d2d0ceb672bb7a80501c2 (diff)
downloadnetsurf-ae6058c15c4dbf1c067fac45cd092afeefa68a53.tar.gz
netsurf-ae6058c15c4dbf1c067fac45cd092afeefa68a53.tar.bz2
create objects from window on demand an keep them as simple unshared objects
update prototype handling to keep GC refs
Diffstat (limited to 'javascript/jsapi.h')
-rw-r--r--javascript/jsapi.h16
1 files changed, 7 insertions, 9 deletions
diff --git a/javascript/jsapi.h b/javascript/jsapi.h
index 8f9affd02..d8dcb360f 100644
--- a/javascript/jsapi.h
+++ b/javascript/jsapi.h
@@ -359,21 +359,19 @@ JS_NewCompartmentAndGlobalObject(JSContext *cx,
#define JSAPI_CLASS_NO_INTERNAL_MEMBERS JSCLASS_NO_INTERNAL_MEMBERS
/* GC marking */
-#ifdef JSCLASS_MARK_IS_TRACE
-/* mark requires casting */
-#define JSAPI_JSCLASS_MARK_IS_TRACE JSCLASS_MARK_IS_TRACE
-#define JSAPI_JSCLASS_MARKOP(x) ((JSMarkOp)x)
-#else
-/* mark does not require casting */
+
+/* mark API is always JSTraceOp now */
#define JSAPI_JSCLASS_MARK_IS_TRACE 0
#define JSAPI_JSCLASS_MARKOP(x) (x)
-#endif
-#define JSAPI_MARKOP(name) JSBool name(JSTracer *trc, JSObject *obj)
+#define JSAPI_MARKOP(name) void name(JSTracer *trc, JSObject *obj)
#define JSAPI_MARKCX trc->context
-#define JSAPI_GCMARK(thing) JS_CallTracer(trc, thing, JSTRACE_OBJECT);
+#define JSAPI_GCMARK(thing) JS_CallTracer(trc, JSVAL_TO_TRACEABLE(OBJECT_TO_JSVAL(thing)), JSTRACE_OBJECT);
+
+
+
/* Macros for manipulating GC root */
#define JSAPI_ADD_OBJECT_ROOT(cx, obj) JS_AddObjectRoot(cx, obj)