From f851822dedc24d1df1db4dd21ebc0939fa56f2e5 Mon Sep 17 00:00:00 2001 From: "spider%netscape.com" Date: Thu, 22 Oct 1998 00:33:10 +0000 Subject: [PATCH] Memory Leak fixes git-svn-id: svn://10.0.0.236/trunk@13291 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/xpfc/chrome/src/nsXPFCMenuContainer.cpp | 4 ++-- mozilla/xpfc/parser/src/nsMenuManager.cpp | 4 ++-- mozilla/xpfc/parser/src/nsXPFCXMLContentSink.cpp | 7 +++++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/mozilla/xpfc/chrome/src/nsXPFCMenuContainer.cpp b/mozilla/xpfc/chrome/src/nsXPFCMenuContainer.cpp index 832b5aeb182..e7914911b54 100644 --- a/mozilla/xpfc/chrome/src/nsXPFCMenuContainer.cpp +++ b/mozilla/xpfc/chrome/src/nsXPFCMenuContainer.cpp @@ -51,11 +51,11 @@ nsXPFCMenuContainer::~nsXPFCMenuContainer() mChildMenus->CreateIterator(&iterator); iterator->Init(); - nsISupports * item; + nsIXPFCMenuItem * item; while(!(iterator->IsDone())) { - item = (nsISupports *) iterator->CurrentItem(); + item = (nsIXPFCMenuItem *) iterator->CurrentItem(); NS_RELEASE(item); iterator->Next(); } diff --git a/mozilla/xpfc/parser/src/nsMenuManager.cpp b/mozilla/xpfc/parser/src/nsMenuManager.cpp index 92e428f4aa3..7e16a9f6996 100644 --- a/mozilla/xpfc/parser/src/nsMenuManager.cpp +++ b/mozilla/xpfc/parser/src/nsMenuManager.cpp @@ -46,11 +46,11 @@ nsMenuManager :: ~nsMenuManager() mMenuContainers->CreateIterator(&iterator); iterator->Init(); - nsISupports * item; + nsIXPFCMenuContainer * item; while(!(iterator->IsDone())) { - item = (nsISupports *) iterator->CurrentItem(); + item = (nsIXPFCMenuContainer *) iterator->CurrentItem(); NS_RELEASE(item); iterator->Next(); } diff --git a/mozilla/xpfc/parser/src/nsXPFCXMLContentSink.cpp b/mozilla/xpfc/parser/src/nsXPFCXMLContentSink.cpp index 7571080e63d..0b5fe58ed35 100644 --- a/mozilla/xpfc/parser/src/nsXPFCXMLContentSink.cpp +++ b/mozilla/xpfc/parser/src/nsXPFCXMLContentSink.cpp @@ -546,6 +546,8 @@ NS_IMETHODIMP nsXPFCXMLContentSink::DidBuildModel(PRInt32 aQualityLevel) nsIIterator * iterator2 ; nsIXPFCMenuContainer * menu_container; nsString child; + nsIXPFCMenuItem * container_item = nsnull; + nsresult res = mOrphanMenuList->CreateIterator(&iterator2); @@ -559,8 +561,6 @@ NS_IMETHODIMP nsXPFCXMLContentSink::DidBuildModel(PRInt32 aQualityLevel) menu_container = (nsIXPFCMenuContainer *) iterator2->CurrentItem(); - nsIXPFCMenuItem * container_item = nsnull; - res = menu_container->QueryInterface(kCIXPFCMenuItemIID,(void**)&container_item); if (res == NS_OK) @@ -584,15 +584,18 @@ NS_IMETHODIMP nsXPFCXMLContentSink::DidBuildModel(PRInt32 aQualityLevel) } mOrphanMenuList->Remove(child); + NS_RELEASE(container_item); break; } NS_RELEASE(container_item); + } iterator2->Next(); } + NS_RELEASE(iterator2); iterator->Next();