change API to avoid using NS_COMFALSE. As jband puts it: NS_COMFALSE generally sucks. NS_COMFALSE is going away. fixes bug #11579

This commit is contained in:
sspitzer%netscape.com 1999-08-11 03:44:32 +00:00
Родитель f8fbe3c895
Коммит b3d7f66956
4 изменённых файлов: 29 добавлений и 8 удалений

Просмотреть файл

@ -229,8 +229,15 @@ nsresult nsMsgDBFolder::ReadDBFolderInfo(PRBool force)
folderInfo->GetCharacterSet(&mCharset); folderInfo->GetCharacterSet(&mCharset);
if (db && !db->HasNew() && mNumPendingUnreadMessages <= 0) if (db) {
ClearFlag(MSG_FOLDER_FLAG_GOT_NEW); PRBool hasnew;
nsresult rv;
rv = db->HasNew(&hasnew);
if (NS_FAILED(rv)) return rv;
if (!hasnew && mNumPendingUnreadMessages <= 0) {
ClearFlag(MSG_FOLDER_FLAG_GOT_NEW);
}
}
} }
} }

Просмотреть файл

@ -149,7 +149,7 @@ interface nsIMsgDatabase : nsIDBChangeAnnouncer {
in nsIDBChangeListener instigator); in nsIDBChangeListener instigator);
readonly attribute nsMsgKey FirstNew; readonly attribute nsMsgKey FirstNew;
void HasNew(); // returns NS_OK if true, NS_COMFALSE if false boolean HasNew();
void ClearNewList(in boolean notify); void ClearNewList(in boolean notify);
void AddToNewList(in nsMsgKey key); void AddToNewList(in nsMsgKey key);

Просмотреть файл

@ -167,7 +167,7 @@ public:
nsIDBChangeListener *instigator); nsIDBChangeListener *instigator);
NS_IMETHOD GetFirstNew(nsMsgKey *result); NS_IMETHOD GetFirstNew(nsMsgKey *result);
NS_IMETHOD HasNew(void); // returns NS_OK if true, NS_COMFALSE if false NS_IMETHOD HasNew(PRBool *_retval);
NS_IMETHOD ClearNewList(PRBool notify); NS_IMETHOD ClearNewList(PRBool notify);
NS_IMETHOD AddToNewList(nsMsgKey key); NS_IMETHOD AddToNewList(nsMsgKey key);

Просмотреть файл

@ -1524,20 +1524,34 @@ NS_IMETHODIMP nsMsgDatabase::ClearNewList(PRBool notify /* = FALSE */)
return err; return err;
} }
NS_IMETHODIMP nsMsgDatabase::HasNew() NS_IMETHODIMP nsMsgDatabase::HasNew(PRBool *_retval)
{ {
return (m_newSet && m_newSet->getLength() > 0) ? NS_OK : NS_COMFALSE; if (!_retval) return NS_ERROR_NULL_POINTER;
if (m_newSet && m_newSet->getLength() > 0) {
*_retval = PR_TRUE;
}
else {
*_retval = PR_FALSE;
}
return NS_OK;
} }
NS_IMETHODIMP nsMsgDatabase::GetFirstNew(nsMsgKey *result) NS_IMETHODIMP nsMsgDatabase::GetFirstNew(nsMsgKey *result)
{ {
// even though getLength is supposedly for debugging only, it's the only // even though getLength is supposedly for debugging only, it's the only
// way I can tell if the set is empty (as opposed to having a member 0. // way I can tell if the set is empty (as opposed to having a member 0.
if (NS_SUCCEEDED(HasNew())) PRBool hasnew;
nsresult rv;
rv = HasNew(&hasnew);
if (NS_FAILED(rv)) return rv;
if (hasnew)
*result = m_newSet->GetFirstMember(); *result = m_newSet->GetFirstMember();
else else
*result = nsMsgKey_None; *result = nsMsgKey_None;
return NS_OK; return NS_OK;
} }