diff --git a/mailnews/base/src/nsMsgAccountManager.cpp b/mailnews/base/src/nsMsgAccountManager.cpp index c4d7554c800b..59e665654c19 100644 --- a/mailnews/base/src/nsMsgAccountManager.cpp +++ b/mailnews/base/src/nsMsgAccountManager.cpp @@ -163,7 +163,8 @@ nsMsgAccountManager::nsMsgAccountManager() : m_haveShutdown(PR_FALSE), m_shutdownInProgress(PR_FALSE), m_userAuthenticated(PR_FALSE), - m_loadingVirtualFolders(PR_FALSE) + m_loadingVirtualFolders(PR_FALSE), + m_virtualFoldersLoaded(PR_FALSE) { } @@ -2973,7 +2974,7 @@ NS_IMETHODIMP nsMsgAccountManager::LoadVirtualFolders() } m_loadingVirtualFolders = PR_FALSE; - + m_virtualFoldersLoaded = PR_TRUE; return rv; } @@ -2981,7 +2982,8 @@ NS_IMETHODIMP nsMsgAccountManager::LoadVirtualFolders() NS_IMETHODIMP nsMsgAccountManager::SaveVirtualFolders() { - + if (!m_virtualFoldersLoaded) + return NS_OK; nsCOMPtr allServers; nsresult rv = GetAllServers(getter_AddRefs(allServers)); nsCOMPtr file; diff --git a/mailnews/base/src/nsMsgAccountManager.h b/mailnews/base/src/nsMsgAccountManager.h index 6bae9c4ac179..88d3330586d9 100644 --- a/mailnews/base/src/nsMsgAccountManager.h +++ b/mailnews/base/src/nsMsgAccountManager.h @@ -102,6 +102,7 @@ private: PRBool m_shutdownInProgress; PRBool m_userAuthenticated; PRBool m_loadingVirtualFolders; + PRBool m_virtualFoldersLoaded; /* we call FindServer() a lot. so cache the last server found */ nsCOMPtr m_lastFindServerResult;