From 7a460332bb23797ee0ff73c64082fae1e68080ec Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Fri, 23 Feb 2007 17:38:45 +0000 Subject: [PATCH] Fix leak when using XPCOM proxies. Bug 371374, patch by Bas Schouten , r=bsmedberg, sr=bzbarsky git-svn-id: svn://10.0.0.236/trunk@220828 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpcom/threads/nsEventQueue.cpp | 9 +++++++++ mozilla/xpcom/threads/nsThread.cpp | 2 ++ 2 files changed, 11 insertions(+) diff --git a/mozilla/xpcom/threads/nsEventQueue.cpp b/mozilla/xpcom/threads/nsEventQueue.cpp index 8555b88076e..d09cb35b10f 100644 --- a/mozilla/xpcom/threads/nsEventQueue.cpp +++ b/mozilla/xpcom/threads/nsEventQueue.cpp @@ -58,6 +58,15 @@ nsEventQueue::nsEventQueue() nsEventQueue::~nsEventQueue() { + { + nsAutoMonitor mon(mMonitor); + + NS_ASSERTION(IsEmpty(), "Non-empty event queue being destroyed; events being leaked."); + + if (mHead) + FreePage(mHead); + } + if (mMonitor) nsAutoMonitor::DestroyMonitor(mMonitor); } diff --git a/mozilla/xpcom/threads/nsThread.cpp b/mozilla/xpcom/threads/nsThread.cpp index 0c06f5374fe..e208f925b5f 100644 --- a/mozilla/xpcom/threads/nsThread.cpp +++ b/mozilla/xpcom/threads/nsThread.cpp @@ -587,6 +587,8 @@ nsThread::PopEventQueue() nsCOMPtr event; while (queue->GetEvent(PR_FALSE, getter_AddRefs(event))) mEvents->PutEvent(event); + + delete queue; return NS_OK; }