fix a bug in nsMsgDBEnumerator. this means I don't have to use

2 enuermators for my "show me only the last n news message" hack.
This commit is contained in:
sspitzer%netscape.com 1999-05-14 22:25:31 +00:00
Родитель 6234cabe7b
Коммит f59bdc1811
2 изменённых файлов: 3 добавлений и 4 удалений

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

@ -1479,6 +1479,7 @@ NS_IMPL_ISUPPORTS(nsMsgDBEnumerator, nsIEnumerator::GetIID())
NS_IMETHODIMP nsMsgDBEnumerator::First(void)
{
nsresult rv = 0;
mDone = PR_FALSE;
if (!mDB || !mDB->m_mdbAllMsgHeadersTable)
return NS_ERROR_NULL_POINTER;

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

@ -564,10 +564,8 @@ nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
if(NS_SUCCEEDED(rv)) {
nsCOMPtr<nsIEnumerator> msgHdrEnumerator;
nsCOMPtr<nsIEnumerator> msgHdrEnumerator2;
nsMessageFromMsgHdrEnumerator *messageEnumerator = nsnull;
rv = mDatabase->EnumerateMessages(getter_AddRefs(msgHdrEnumerator));
rv = mDatabase->EnumerateMessages(getter_AddRefs(msgHdrEnumerator2));
nsCOMPtr <nsISupportsArray> shortlist;
if(NS_SUCCEEDED(rv)) {
@ -580,10 +578,10 @@ nsMsgNewsFolder::GetMessages(nsIEnumerator* *result)
printf("total = %d\n",total);
#endif
PRInt32 count = 0;
for (msgHdrEnumerator2->First(); msgHdrEnumerator2->IsDone() != NS_OK; msgHdrEnumerator2->Next()) {
for (msgHdrEnumerator->First(); msgHdrEnumerator->IsDone() != NS_OK; msgHdrEnumerator->Next()) {
if (count >= (total - number_to_show)) {
nsCOMPtr<nsISupports> i;
rv = msgHdrEnumerator2->CurrentItem(getter_AddRefs(i));
rv = msgHdrEnumerator->CurrentItem(getter_AddRefs(i));
if (NS_FAILED(rv)) return rv;
shortlist->AppendElement(i);
#ifdef DEBUG_NOISY_NEWS