From cdee6550d384b693dc0ff8aa84fdeeef28f75da8 Mon Sep 17 00:00:00 2001 From: "danm%netscape.com" Date: Fri, 18 Feb 2000 05:53:59 +0000 Subject: [PATCH] allocate hashtable keys on the stack, not the heap. fixes leak (bug 28288). r=dp a=jar git-svn-id: svn://10.0.0.236/trunk@61284 18797224-902f-48f8-a5cc-f745e15eee43 --- .../widget/timer/src/windows/nsTimerManager.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mozilla/widget/timer/src/windows/nsTimerManager.cpp b/mozilla/widget/timer/src/windows/nsTimerManager.cpp index 095508f83b3..6eaf827e86b 100644 --- a/mozilla/widget/timer/src/windows/nsTimerManager.cpp +++ b/mozilla/widget/timer/src/windows/nsTimerManager.cpp @@ -122,7 +122,8 @@ NS_IMETHODIMP_(void) nsTimerManager::FireNextReadyTimer(PRUint32 minTimerPriorit NS_IMETHODIMP_(void) nsTimerManager::AddTimer(UINT timerID, nsTimer* timer) { if (mTimers != nsnull) { - mTimers->Put(new nsVoidKey((void*)timerID), timer); + nsVoidKey key((void *) timerID); + mTimers->Put(&key, timer); } } @@ -130,13 +131,17 @@ NS_IMETHODIMP_(void) nsTimerManager::AddTimer(UINT timerID, nsTimer* timer) NS_IMETHODIMP_(void) nsTimerManager::RemoveTimer(UINT timerID) { if (mTimers != nsnull) { - mTimers->Remove(new nsVoidKey((void*)timerID)); + nsVoidKey key((void *) timerID); + mTimers->Remove(&key); } } -NS_IMETHODIMP_(nsTimer*) nsTimerManager::GetTimer(UINT id) +NS_IMETHODIMP_(nsTimer*) nsTimerManager::GetTimer(UINT timerID) { - return (nsTimer*) (mTimers != nsnull ? - (nsTimer*)mTimers->Get(new nsVoidKey((void*)id)) : nsnull); + if (mTimers != nsnull) { + nsVoidKey key((void *) timerID); + return (nsTimer *) mTimers->Get(&key); + } + return nsnull; }