From 56afef33010c0dd7f652ec928adc93ab6d314e80 Mon Sep 17 00:00:00 2001 From: "bienvenu%nventure.com" Date: Mon, 16 Feb 2004 01:43:47 +0000 Subject: [PATCH] fix saving as draft when imap drafts folder is empty and has just been compacted, sr=mscott, a=dveditz 98576 git-svn-id: svn://10.0.0.236/trunk@152802 18797224-902f-48f8-a5cc-f745e15eee43 --- .../mailnews/imap/src/nsImapMailFolder.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/mozilla/mailnews/imap/src/nsImapMailFolder.cpp b/mozilla/mailnews/imap/src/nsImapMailFolder.cpp index 2a9303c89d8..589f479eef7 100644 --- a/mozilla/mailnews/imap/src/nsImapMailFolder.cpp +++ b/mozilla/mailnews/imap/src/nsImapMailFolder.cpp @@ -224,7 +224,7 @@ nsImapMailFolder::nsImapMailFolder() : getter_AddRefs(m_eventQueue)); m_moveCoalescer = nsnull; m_boxFlags = 0; - m_uidValidity = 0; + m_uidValidity = kUidUnknown; m_numStatusRecentMessages = 0; m_numStatusUnseenMessages = 0; m_hierarchyDelimiter = kOnlineHierarchySeparatorUnknown; @@ -1869,16 +1869,16 @@ nsImapMailFolder::GetDBFolderInfoAndDB(nsIDBFolderInfo **folderInfo, nsIMsgDatab { nsresult openErr=NS_ERROR_UNEXPECTED; if(!db || !folderInfo) - return NS_ERROR_NULL_POINTER; //ducarroz: should we use NS_ERROR_INVALID_ARG? + return NS_ERROR_NULL_POINTER; //ducarroz: should we use NS_ERROR_INVALID_ARG? nsresult rv; openErr = GetDatabase(nsnull); *db = mDatabase; NS_IF_ADDREF(*db); - if (NS_SUCCEEDED(openErr)&& *db) + if (NS_SUCCEEDED(openErr)&& *db) { - openErr = (*db)->GetDBFolderInfo(folderInfo); + openErr = (*db)->GetDBFolderInfo(folderInfo); if (NS_SUCCEEDED(openErr) && folderInfo) { nsXPIDLCString onlineName; @@ -4984,6 +4984,17 @@ NS_IMETHODIMP nsImapMailFolder::GetUidValidity(PRInt32 *uidValidity) { NS_ENSURE_ARG(uidValidity); + if (m_uidValidity == kUidUnknown) + { + nsCOMPtr db; + nsCOMPtr dbFolderInfo; + (void) GetDBFolderInfoAndDB(getter_AddRefs(dbFolderInfo), getter_AddRefs(db)); + if (db) + db->GetDBFolderInfo(getter_AddRefs(dbFolderInfo)); + + if (dbFolderInfo) + dbFolderInfo->GetImapUidValidity((PRInt32 *) &m_uidValidity); + } *uidValidity = m_uidValidity; return NS_OK; }