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
This commit is contained in:
dbaron%dbaron.org
2006-02-22 00:51:35 +00:00
parent 59d3ff8e4a
commit 60ac5a1a1f

View File

@@ -231,19 +231,19 @@ nsViewManager::~nsViewManager()
// Make sure to RevokeEvents for all viewmanagers, since some events
// are posted by a non-root viewmanager.
nsCOMPtr<nsIEventQueue> 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