зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
f8fbe3c895
Коммит
b3d7f66956
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче