fixes bug 135547 "make event queues more robust"
r=danm sr=rpotts,brendan git-svn-id: svn://10.0.0.236/trunk@118682 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -386,6 +386,12 @@ nsEventQueueImpl::ProcessPendingEvents()
|
||||
}
|
||||
#endif
|
||||
PL_ProcessPendingEvents(mEventQueue);
|
||||
|
||||
// if we're no longer accepting events and there are still events in the
|
||||
// queue, then process remaining events.
|
||||
if (!mAcceptingEvents && PL_EventAvailable(mEventQueue))
|
||||
PL_ProcessPendingEvents(mEventQueue);
|
||||
|
||||
CheckForDeactivation();
|
||||
|
||||
if (mElderQueue) {
|
||||
|
||||
@@ -331,6 +331,7 @@ nsEventQueueServiceImpl::PopThreadEventQueue(nsIEventQueue *aQueue)
|
||||
++gEventQueueLogCount;
|
||||
#endif
|
||||
aQueue->StopAcceptingEvents();
|
||||
aQueue->ProcessPendingEvents(); // make sure we don't orphan any events
|
||||
|
||||
if (aQueue == queue.get()) { // are we reomving the eldest queue?
|
||||
mEventQTable.Remove(&key); // remove nsIEventQueue from hash table (releases)
|
||||
|
||||
Reference in New Issue
Block a user