From 60ac5a1a1f99c30b9818078bfb80273384936fe9 Mon Sep 17 00:00:00 2001 From: "dbaron%dbaron.org" Date: Wed, 22 Feb 2006 00:51:35 +0000 Subject: [PATCH] Avoid asking the event queue service for an event queue during XPCOM shutdown. r+sr=roc b=327655 git-svn-id: svn://10.0.0.236/trunk@190773 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/view/src/nsViewManager.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/mozilla/view/src/nsViewManager.cpp b/mozilla/view/src/nsViewManager.cpp index c964bd3499f..50e2d2ec859 100644 --- a/mozilla/view/src/nsViewManager.cpp +++ b/mozilla/view/src/nsViewManager.cpp @@ -231,19 +231,19 @@ nsViewManager::~nsViewManager() // Make sure to RevokeEvents for all viewmanagers, since some events // are posted by a non-root viewmanager. - nsCOMPtr eventQueue; - mEventQueueService->GetSpecialEventQueue(nsIEventQueueService::UI_THREAD_EVENT_QUEUE, - getter_AddRefs(eventQueue)); - NS_ASSERTION(eventQueue, "Event queue is null"); - eventQueue->RevokeEvents(this); + if (mInvalidateEventQueue) { + mInvalidateEventQueue->RevokeEvents(this); + mInvalidateEventQueue = nsnull; + } + if (mSynthMouseMoveEventQueue) { + mSynthMouseMoveEventQueue->RevokeEvents(this); + mSynthMouseMoveEventQueue = nsnull; + } if (!IsRootVM()) { // We have a strong ref to mRootViewManager NS_RELEASE(mRootViewManager); } - - mInvalidateEventQueue = nsnull; - mSynthMouseMoveEventQueue = nsnull; mRootScrollable = nsnull; @@ -1218,6 +1218,7 @@ nsViewManager::UpdateWidgetArea(nsView *aWidgetView, const nsRegion &aDamagedReg childWidget; childWidget = childWidget->GetNextSibling()) { nsView* view = nsView::GetViewFor(childWidget); + NS_ASSERTION(view != aWidgetView, "will recur infinitely"); if (view && view->GetVisibility() == nsViewVisibility_kShow) { // Don't mess with views that are in completely different view // manager trees