Bug 741245 - Remove nsresult return value from nsXPConnect::GetSafeJSContext(); r=bholley

This commit is contained in:
Ms2ger 2012-04-14 15:05:01 +02:00
parent 7fd5606557
commit 9f95d23e65
19 changed files with 47 additions and 67 deletions

View File

@ -363,10 +363,7 @@ JSContext *
nsScriptSecurityManager::GetSafeJSContext()
{
// Get JSContext from stack.
JSContext *cx;
if (NS_FAILED(sJSContextStack->GetSafeJSContext(&cx)))
return nsnull;
return cx;
return sJSContextStack->GetSafeJSContext();
}
/* static */

View File

@ -1623,8 +1623,7 @@ nsContentUtils::TraceSafeJSContext(JSTracer* aTrc)
if (!sThreadJSContextStack) {
return;
}
JSContext* cx = nsnull;
sThreadJSContextStack->GetSafeJSContext(&cx);
JSContext* cx = sThreadJSContextStack->GetSafeJSContext();
if (!cx) {
return;
}

View File

@ -3845,7 +3845,7 @@ nsDocument::SetScriptGlobalObject(nsIScriptGlobalObject *aScriptGlobalObject)
if (!cx) {
nsContentUtils::ThreadJSContextStack()->Peek(&cx);
if (!cx) {
nsContentUtils::ThreadJSContextStack()->GetSafeJSContext(&cx);
cx = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext();
NS_ASSERTION(cx, "Uhoh, no context, this is bad!");
}
}
@ -6054,7 +6054,7 @@ GetContextAndScope(nsIDocument* aOldDocument, nsIDocument* aNewDocument,
stack->Peek(&cx);
if (!cx) {
stack->GetSafeJSContext(&cx);
cx = stack->GetSafeJSContext();
if (!cx) {
// No safe context reachable, bail.

View File

@ -379,7 +379,7 @@ nsFrameMessageManager::ReceiveMessage(nsISupports* aTarget,
{
JSContext* ctx = mContext ? mContext : aContext;
if (!ctx) {
nsContentUtils::ThreadJSContextStack()->GetSafeJSContext(&ctx);
ctx = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext();
}
if (mListeners.Length()) {
nsCOMPtr<nsIAtom> name = do_GetAtom(aMessage);
@ -723,8 +723,7 @@ void
nsFrameScriptExecutor::Shutdown()
{
if (sCachedScripts) {
JSContext* cx = nsnull;
nsContentUtils::ThreadJSContextStack()->GetSafeJSContext(&cx);
JSContext* cx = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext();
if (cx) {
#ifdef DEBUG_smaug
printf("Will clear cached frame manager scripts!\n");

View File

@ -134,8 +134,7 @@ nsEventListenerInfo::ToSource(nsAString& aResult)
nsCOMPtr<nsIThreadJSContextStack> stack =
nsContentUtils::ThreadJSContextStack();
if (stack) {
JSContext* cx = nsnull;
stack->GetSafeJSContext(&cx);
JSContext* cx = stack->GetSafeJSContext();
if (cx && NS_SUCCEEDED(stack->Push(cx))) {
{
// Extra block to finish the auto request before calling pop
@ -177,8 +176,7 @@ nsEventListenerInfo::GetDebugObject(nsISupports** aRetVal)
nsCOMPtr<nsIThreadJSContextStack> stack =
nsContentUtils::ThreadJSContextStack();
if (stack) {
JSContext* cx = nsnull;
stack->GetSafeJSContext(&cx);
JSContext* cx = stack->GetSafeJSContext();
if (cx && NS_SUCCEEDED(stack->Push(cx))) {
{
// Extra block to finish the auto request before calling pop

View File

@ -2418,10 +2418,8 @@ nsDOMClassInfo::Init()
do_GetService("@mozilla.org/js/xpc/ContextStack;1", &rv);
NS_ENSURE_SUCCESS(rv, rv);
JSContext *cx = nsnull;
rv = stack->GetSafeJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSContext* cx = stack->GetSafeJSContext();
NS_ENSURE_TRUE(cx, NS_ERROR_FAILURE);
DOM_CLASSINFO_MAP_BEGIN(Window, nsIDOMWindow)
DOM_CLASSINFO_WINDOW_MAP_ENTRIES(nsGlobalWindow::HasIndexedDBSupport())
@ -9590,7 +9588,7 @@ public:
do_GetService("@mozilla.org/js/xpc/ContextStack;1");
NS_ENSURE_TRUE(stack, NS_OK);
stack->GetSafeJSContext(&cx);
cx = stack->GetSafeJSContext();
NS_ENSURE_TRUE(cx, NS_OK);
}

View File

@ -6199,7 +6199,7 @@ PostMessageEvent::Run()
// we need to find a JSContext.
nsIThreadJSContextStack* cxStack = nsContentUtils::ThreadJSContextStack();
if (cxStack) {
cxStack->GetSafeJSContext(&cx);
cx = cxStack->GetSafeJSContext();
}
if (!cx) {

View File

@ -134,7 +134,8 @@ IDBRequest::NotifyHelperCompleted(HelperBase* aHelper)
nsIThreadJSContextStack* cxStack = nsContentUtils::ThreadJSContextStack();
NS_ASSERTION(cxStack, "Failed to get thread context stack!");
if (NS_FAILED(cxStack->GetSafeJSContext(&cx))) {
cx = cxStack->GetSafeJSContext();
if (!cx) {
NS_WARNING("Failed to get safe JSContext!");
rv = NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR;
mError = DOMError::CreateForNSResult(rv);

View File

@ -1985,8 +1985,7 @@ nsJSNPRuntime::OnPluginDestroy(NPP npp)
return;
}
JSContext *cx;
stack->GetSafeJSContext(&cx);
JSContext* cx = stack->GetSafeJSContext();
if (!cx) {
NS_ERROR("No safe JS context available!");

View File

@ -1348,10 +1348,10 @@ _getstringidentifier(const NPUTF8* name)
if (!stack)
return NULL;
JSContext *cx = nsnull;
stack->GetSafeJSContext(&cx);
if (!cx)
JSContext* cx = stack->GetSafeJSContext();
if (!cx) {
return NULL;
}
JSAutoRequest ar(cx);
return doGetIdentifier(cx, name);
@ -1369,10 +1369,10 @@ _getstringidentifiers(const NPUTF8** names, int32_t nameCount,
if (!stack)
return;
JSContext *cx = nsnull;
stack->GetSafeJSContext(&cx);
if (!cx)
JSContext* cx = stack->GetSafeJSContext();
if (!cx) {
return;
}
JSAutoRequest ar(cx);

View File

@ -69,8 +69,7 @@ PluginIdentifierParent::RecvRetain()
return false;
}
JSContext *cx = nsnull;
stack->GetSafeJSContext(&cx);
JSContext* cx = stack->GetSafeJSContext();
if (!cx) {
return false;
}

View File

@ -216,16 +216,15 @@ SystemWorkerManager::Init()
NS_ASSERTION(NS_IsMainThread(), "We can only initialize on the main thread");
NS_ASSERTION(!mShutdown, "Already shutdown!");
JSContext *cx;
nsresult rv = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSContext* cx = nsContentUtils::ThreadJSContextStack()->GetSafeJSContext();
NS_ENSURE_TRUE(cx, NS_ERROR_FAILURE);
nsCxPusher pusher;
if (!cx || !pusher.Push(cx, false)) {
if (!pusher.Push(cx, false)) {
return NS_ERROR_FAILURE;
}
rv = InitRIL(cx);
nsresult rv = InitRIL(cx);
NS_ENSURE_SUCCESS(rv, rv);
rv = InitWifi(cx);

View File

@ -1337,8 +1337,8 @@ RuntimeService::AutoSafeJSContext::GetSafeContext()
nsIThreadJSContextStack* stack = nsContentUtils::ThreadJSContextStack();
NS_ASSERTION(stack, "This should never be null!");
JSContext* cx;
if (NS_FAILED(stack->GetSafeJSContext(&cx))) {
JSContext* cx = stack->GetSafeJSContext();
if (!cx) {
NS_ERROR("Couldn't get safe JSContext!");
return nsnull;
}

View File

@ -306,10 +306,10 @@ nsresult JSContextAutoPopper::Push(JSContext *cx)
return NS_ERROR_FAILURE;
mService = do_GetService(sJSStackContractID);
if(mService) {
if (mService) {
// Get the safe context if we're not provided one.
if (!cx && NS_FAILED(mService->GetSafeJSContext(&cx))) {
cx = nsnull;
if (!cx) {
cx = mService->GetSafeJSContext();
}
// Save cx in mContext to indicate need to pop.

View File

@ -77,9 +77,9 @@ interface nsIJSContextStackIterator : nsISupports
JSContext prev();
};
[uuid(b7056a2a-a02d-43b1-abb9-47f81f8bf258)]
[uuid(3f8d6996-172d-4c0a-b591-50d6966cdb9a)]
interface nsIThreadJSContextStack : nsIJSContextStack
{
/* inherits methods of nsIJSContextStack */
readonly attribute JSContext safeJSContext;
[notxpcom,nostdcall] JSContext getSafeJSContext();
};

View File

@ -2605,21 +2605,17 @@ nsXPConnect::Push(JSContext * cx)
return data->GetJSContextStack()->Push(cx) ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
}
/* attribute JSContext SafeJSContext; */
NS_IMETHODIMP
nsXPConnect::GetSafeJSContext(JSContext * *aSafeJSContext)
/* virtual */
JSContext*
nsXPConnect::GetSafeJSContext()
{
NS_ASSERTION(aSafeJSContext, "loser!");
XPCPerThreadData* data = XPCPerThreadData::GetData(nsnull);
XPCPerThreadData *data = XPCPerThreadData::GetData(NULL);
if (!data) {
*aSafeJSContext = nsnull;
return NS_ERROR_FAILURE;
return NULL;
}
*aSafeJSContext = data->GetJSContextStack()->GetSafeJSContext();
return *aSafeJSContext ? NS_OK : NS_ERROR_FAILURE;
return data->GetJSContextStack()->GetSafeJSContext();
}
nsIPrincipal*

View File

@ -74,9 +74,8 @@ GetWindowOfObserver(nsIObserver* aObserver)
do_GetService("@mozilla.org/js/xpc/ContextStack;1", &rv);
NS_ENSURE_SUCCESS(rv, nsnull);
JSContext* cx;
rv = stack->GetSafeJSContext(&cx);
NS_ENSURE_SUCCESS(rv, nsnull);
JSContext* cx = stack->GetSafeJSContext();
NS_ENSURE_TRUE(cx, nsnull);
JSAutoRequest ar(cx);
JSAutoEnterCompartment ac;

View File

@ -1678,11 +1678,9 @@ nsresult SafeJSContext::Push() {
return NS_ERROR_FAILURE;
mService = do_GetService(sJSStackContractID);
if(mService) {
JSContext *cx;
if (NS_SUCCEEDED(mService->GetSafeJSContext(&cx)) &&
cx &&
NS_SUCCEEDED(mService->Push(cx))) {
if (mService) {
JSContext* cx = mService->GetSafeJSContext();
if (cx && NS_SUCCEEDED(mService->Push(cx))) {
// Save cx in mContext to indicate need to pop.
mContext = cx;
}

View File

@ -1501,11 +1501,9 @@ nsresult SafeJSContext::Push() {
return NS_ERROR_FAILURE;
mService = do_GetService(sJSStackContractID);
if(mService) {
JSContext *cx;
if (NS_SUCCEEDED(mService->GetSafeJSContext(&cx)) &&
cx &&
NS_SUCCEEDED(mService->Push(cx))) {
if (mService) {
JSContext* cx = mService->GetSafeJSContext();
if (cx && NS_SUCCEEDED(mService->Push(cx))) {
// Save cx in mContext to indicate need to pop.
mContext = cx;
}