From 5760a0138fb5ae30ac868257863898f46962b27d Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Sun, 15 Jan 2012 09:13:10 +0100 Subject: [PATCH] Bug 677079 - Part o: Expose setActivityCallback in jsfriendapi.h; r=gal --- js/src/jscntxt.h | 16 +--------------- js/src/jsfriendapi.cpp | 6 ++++++ js/src/jsfriendapi.h | 12 ++++++++++++ js/xpconnect/src/XPCJSRuntime.cpp | 3 +-- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/js/src/jscntxt.h b/js/src/jscntxt.h index f3872bb9213..6f7d66eb8b7 100644 --- a/js/src/jscntxt.h +++ b/js/src/jscntxt.h @@ -337,9 +337,6 @@ typedef struct JSPropertyTreeEntry { js::Shape *child; } JSPropertyTreeEntry; -typedef void -(* JSActivityCallback)(void *arg, JSBool active); - namespace js { typedef Vector CompartmentVector; @@ -378,18 +375,7 @@ struct JSRuntime /* Compartment create/destroy callback. */ JSCompartmentCallback compartmentCallback; - /* - * Sets a callback that is run whenever the runtime goes idle - the - * last active request ceases - and begins activity - when it was - * idle and a request begins. Note: The callback is called under the - * GC lock. - */ - void setActivityCallback(JSActivityCallback cb, void *arg) { - activityCallback = cb; - activityCallbackArg = arg; - } - - JSActivityCallback activityCallback; + js::ActivityCallback activityCallback; void *activityCallbackArg; /* Garbage collector state, used by jsgc.c. */ diff --git a/js/src/jsfriendapi.cpp b/js/src/jsfriendapi.cpp index 6852009f663..6ce62f38252 100644 --- a/js/src/jsfriendapi.cpp +++ b/js/src/jsfriendapi.cpp @@ -547,4 +547,10 @@ HasUnrootedGlobal(const JSContext *cx) return cx->hasRunOption(JSOPTION_UNROOTED_GLOBAL); } +JS_FRIEND_API(void) +SetActivityCallback(JSRuntime *rt, ActivityCallback cb, void *arg) +{ + rt->activityCallback = cb; + rt->activityCallbackArg = arg; +} } // namespace js diff --git a/js/src/jsfriendapi.h b/js/src/jsfriendapi.h index ff5b2499c63..0fa653576a7 100644 --- a/js/src/jsfriendapi.h +++ b/js/src/jsfriendapi.h @@ -464,6 +464,18 @@ GetContextCompartment(const JSContext *cx); JS_FRIEND_API(bool) HasUnrootedGlobal(const JSContext *cx); +typedef void +(* ActivityCallback)(void *arg, JSBool active); + +/* + * Sets a callback that is run whenever the runtime goes idle - the + * last active request ceases - and begins activity - when it was + * idle and a request begins. Note: The callback is called under the + * GC lock. + */ +JS_FRIEND_API(void) +SetActivityCallback(JSRuntime *rt, ActivityCallback cb, void *arg); + class JS_FRIEND_API(AutoLockGC) { public: diff --git a/js/xpconnect/src/XPCJSRuntime.cpp b/js/xpconnect/src/XPCJSRuntime.cpp index 177c861d204..d36a05e8a01 100644 --- a/js/xpconnect/src/XPCJSRuntime.cpp +++ b/js/xpconnect/src/XPCJSRuntime.cpp @@ -70,7 +70,6 @@ JS_LOCK_GC, JS_UNLOCK_GC js_NextActiveContext, js::TriggerOperationCallback mWatchdogWakeup = JS_NEW_CONDVAR(mJSRuntime->gcLock); - mJSRuntime->setActivityCallback(ActivityCallback, this); #endif using namespace mozilla; @@ -2001,7 +2000,7 @@ XPCJSRuntime::XPCJSRuntime(nsXPConnect* aXPConnect) if (!mWatchdogWakeup) NS_RUNTIMEABORT("JS_NEW_CONDVAR failed."); - mJSRuntime->setActivityCallback(ActivityCallback, this); + js::SetActivityCallback(mJSRuntime, ActivityCallback, this); NS_RegisterMemoryReporter(new NS_MEMORY_REPORTER_NAME(XPConnectJSGCHeap)); NS_RegisterMemoryReporter(new NS_MEMORY_REPORTER_NAME(XPConnectJSSystemCompartmentCount));