From e9851860ab72964e5905350a450713c8573ac583 Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Mon, 1 Nov 2004 06:19:31 +0000 Subject: [PATCH] fix crash drag dropping virtual folders, 264605, clean up virtural folder db listening code git-svn-id: svn://10.0.0.236/branches/AVIARY_1_0_20040515_BRANCH@164723 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/mailnews/base/src/nsMsgAccountManager.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mozilla/mailnews/base/src/nsMsgAccountManager.cpp b/mozilla/mailnews/base/src/nsMsgAccountManager.cpp index 0e354959900..a76c52fa543 100644 --- a/mozilla/mailnews/base/src/nsMsgAccountManager.cpp +++ b/mozilla/mailnews/base/src/nsMsgAccountManager.cpp @@ -2644,11 +2644,10 @@ NS_IMETHODIMP VirtualFolderChangeListener::OnParentChanged(nsMsgKey aKeyChanged, NS_IMETHODIMP VirtualFolderChangeListener::OnAnnouncerGoingAway(nsIDBChangeAnnouncer *instigator) { - nsresult rv; - nsCOMPtr msgDBService = do_GetService(NS_MSGDB_SERVICE_CONTRACTID, &rv); - if (msgDBService) - msgDBService->UnregisterPendingListener(this); - return rv; + nsCOMPtr msgDB = do_QueryInterface(instigator); + if (msgDB) + msgDB->RemoveListener(this); + return NS_OK; } NS_IMETHODIMP VirtualFolderChangeListener::OnReadChanged(nsIDBChangeListener *aInstigator) @@ -2833,6 +2832,8 @@ NS_IMETHODIMP nsMsgAccountManager::SaveVirtualFolders() nsCOMPtr db; nsCOMPtr dbFolderInfo; rv = msgFolder->GetDBFolderInfoAndDB(getter_AddRefs(dbFolderInfo), getter_AddRefs(db)); // force db to get created. + if (dbFolderInfo) + { nsXPIDLCString srchFolderUri; nsXPIDLCString searchTerms; PRBool searchOnline = PR_FALSE; @@ -2848,6 +2849,7 @@ NS_IMETHODIMP nsMsgAccountManager::SaveVirtualFolders() } } } + } if (outputStream) outputStream->Close(); }