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);
if (db && !db->HasNew() && mNumPendingUnreadMessages <= 0)
ClearFlag(MSG_FOLDER_FLAG_GOT_NEW);
if (db) {
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);
readonly attribute nsMsgKey FirstNew;
void HasNew(); // returns NS_OK if true, NS_COMFALSE if false
boolean HasNew();
void ClearNewList(in boolean notify);
void AddToNewList(in nsMsgKey key);

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

@ -167,7 +167,7 @@ public:
nsIDBChangeListener *instigator);
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 AddToNewList(nsMsgKey key);

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

@ -1524,20 +1524,34 @@ NS_IMETHODIMP nsMsgDatabase::ClearNewList(PRBool notify /* = FALSE */)
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)
{
// 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.
if (NS_SUCCEEDED(HasNew()))
PRBool hasnew;
nsresult rv;
rv = HasNew(&hasnew);
if (NS_FAILED(rv)) return rv;
if (hasnew)
*result = m_newSet->GetFirstMember();
else
*result = nsMsgKey_None;
return NS_OK;
return NS_OK;
}