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(); }