From 828996fdaceb9a355420f38da98d0a89e4d5f203 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Wed, 11 Jul 2007 03:01:56 +0000 Subject: [PATCH] Try to fix orange: sGlobalObserver can get set during event processing, not just unset. Bug 326777 git-svn-id: svn://10.0.0.236/trunk@229659 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/threads/nsThread.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mozilla/xpcom/threads/nsThread.cpp b/mozilla/xpcom/threads/nsThread.cpp index 9d291840fe4..13e51583b0b 100644 --- a/mozilla/xpcom/threads/nsThread.cpp +++ b/mozilla/xpcom/threads/nsThread.cpp @@ -467,7 +467,8 @@ nsThread::ProcessNextEvent(PRBool mayWait, PRBool *result) NS_ENSURE_STATE(PR_GetCurrentThread() == mThread); - if (sGlobalObserver) + PRBool notifyGlobalObserver = (sGlobalObserver != nsnull); + if (notifyGlobalObserver) sGlobalObserver->OnProcessNextEvent(this, mayWait && !ShuttingDown(), mRunningEvent); @@ -496,7 +497,7 @@ nsThread::ProcessNextEvent(PRBool mayWait, PRBool *result) if (obs) obs->AfterProcessNextEvent(this, mRunningEvent); - if (sGlobalObserver) + if (notifyGlobalObserver && sGlobalObserver) sGlobalObserver->AfterProcessNextEvent(this, mRunningEvent); return rv;