author | Igor Bukanov <igor@mir2.org> |
Sat, 12 Jun 2010 18:28:19 +0200 | |
changeset 47437 | 019cb92eb9b4e6df03787abc0e99a2a5997d61cb |
parent 47436 | 60af001940cf3a083d3ac2d58858faece3c19f18 |
child 47438 | 2e14a43ef3db669efe6d0ddee6417c6bc0a348e3 |
push id | 1 |
push user | root |
push date | Tue, 26 Apr 2011 22:38:44 +0000 |
treeherder | mozilla-beta@bfdb6e623a36 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mrbkap |
bugs | 571661 |
milestone | 1.9.3a5pre |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/js/src/xpconnect/src/xpcprivate.h +++ b/js/src/xpconnect/src/xpcprivate.h @@ -3833,171 +3833,17 @@ private: PRUint32 mLineNumber; nsString mSourceLine; PRUint32 mColumnNumber; PRUint32 mFlags; nsCString mCategory; }; /***************************************************************************/ -// XXX allowing for future notifications to XPCCallContext - -class NS_STACK_CLASS AutoJSRequest -{ -public: - AutoJSRequest(XPCCallContext& aCCX MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) - : mCCX(aCCX), mCX(aCCX.GetJSContext()) { - MOZILLA_GUARD_OBJECT_NOTIFIER_INIT; - BeginRequest(); - } - ~AutoJSRequest() {EndRequest();} - - void EndRequest() { - if(mCX) { - JS_EndRequest(mCX); - mCX = nsnull; - } - } -private: - void BeginRequest() { - if(JS_GetContextThread(mCX)) - JS_BeginRequest(mCX); - else - mCX = nsnull; - } -private: - XPCCallContext& mCCX; - JSContext* mCX; - MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER -}; - -class NS_STACK_CLASS AutoJSSuspendRequest -{ -public: - AutoJSSuspendRequest(XPCCallContext& aCCX - MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) - : mCX(aCCX.GetJSContext()) { - MOZILLA_GUARD_OBJECT_NOTIFIER_INIT; - SuspendRequest(); - } - ~AutoJSSuspendRequest() {ResumeRequest();} - - void ResumeRequest() { - if(mCX) { - JS_ResumeRequest(mCX, mDepth); - mCX = nsnull; - } - } -private: - void SuspendRequest() { - if(JS_GetContextThread(mCX)) - mDepth = JS_SuspendRequest(mCX); - else - mCX = nsnull; - } -private: - JSContext* mCX; - jsrefcount mDepth; - MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER -}; - -class NS_STACK_CLASS AutoJSSuspendRequestWithNoCallContext -{ -public: - AutoJSSuspendRequestWithNoCallContext(JSContext *aCX - MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) - : mCX(aCX) { - MOZILLA_GUARD_OBJECT_NOTIFIER_INIT; - SuspendRequest(); - } - ~AutoJSSuspendRequestWithNoCallContext() {ResumeRequest();} - - void ResumeRequest() { - if(mCX) { - JS_ResumeRequest(mCX, mDepth); - mCX = nsnull; - } - } -private: - void SuspendRequest() { - if(JS_GetContextThread(mCX)) - mDepth = JS_SuspendRequest(mCX); - else - mCX = nsnull; - } -private: - JSContext* mCX; - jsrefcount mDepth; - MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER -}; - -class NS_STACK_CLASS AutoJSSuspendNonMainThreadRequest -{ -public: - AutoJSSuspendNonMainThreadRequest(JSContext *aCX - MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) - : mCX(aCX) { - MOZILLA_GUARD_OBJECT_NOTIFIER_INIT; - SuspendRequest(); - } - ~AutoJSSuspendNonMainThreadRequest() {ResumeRequest();} - - void ResumeRequest() { - if (mCX) { - JS_ResumeRequest(mCX, mDepth); - mCX = nsnull; - } - } - -private: - void SuspendRequest() { - if (mCX && !XPCPerThreadData::IsMainThread(mCX)) - mDepth = JS_SuspendRequest(mCX); - else - mCX = nsnull; - } - - JSContext *mCX; - jsrefcount mDepth; - MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER -}; - - -/*****************************************/ - -class NS_STACK_CLASS AutoJSRequestWithNoCallContext -{ -public: - AutoJSRequestWithNoCallContext(JSContext* aCX - MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) - : mCX(aCX) { - MOZILLA_GUARD_OBJECT_NOTIFIER_INIT; - BeginRequest(); - } - ~AutoJSRequestWithNoCallContext() {EndRequest();} - - void EndRequest() { - if(mCX) { - JS_EndRequest(mCX); - mCX = nsnull; - } - } -private: - void BeginRequest() { - if(JS_GetContextThread(mCX)) - JS_BeginRequest(mCX); - else - mCX = nsnull; - } -private: - JSContext* mCX; - MOZILLA_DECL_USE_GUARD_OBJECT_NOTIFIER -}; - -/***************************************************************************/ + class NS_STACK_CLASS AutoJSErrorAndExceptionEater { public: AutoJSErrorAndExceptionEater(JSContext* aCX MOZILLA_GUARD_OBJECT_NOTIFIER_PARAM) : mCX(aCX), mOldErrorReporter(JS_SetErrorReporter(mCX, nsnull)), mOldExceptionState(JS_SaveExceptionState(mCX)) {