fix thread iterator, add some debugging iterators
git-svn-id: svn://10.0.0.236/trunk@26632 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -206,6 +206,8 @@ public:
|
||||
static int GetNumInCache(void) {return(GetDBCache()->Count());}
|
||||
static void DumpCache();
|
||||
virtual nsresult DumpContents();
|
||||
nsresult DumpThread(nsMsgKey threadId);
|
||||
nsresult DumpMsgChildren(nsIMessage *msgHdr);
|
||||
#endif
|
||||
|
||||
friend class nsMsgHdr; // use this to get access to cached tokens for hdr fields
|
||||
|
||||
@@ -2574,9 +2574,56 @@ nsresult nsMsgDatabase::DumpContents()
|
||||
{
|
||||
key = threads[i];
|
||||
printf("thread key = %ld\n", key);
|
||||
// DumpThread(key);
|
||||
}
|
||||
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsMsgDatabase::DumpMsgChildren(nsIMessage *msgHdr)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult nsMsgDatabase::DumpThread(nsMsgKey threadId)
|
||||
{
|
||||
nsresult ret = NS_OK;
|
||||
nsIMsgThread *thread = nsnull;
|
||||
|
||||
thread = GetThreadForThreadId(threadId);
|
||||
if (thread)
|
||||
{
|
||||
nsIEnumerator *enumerator = nsnull;
|
||||
|
||||
ret = thread->EnumerateMessages(nsMsgKey_None, &enumerator);
|
||||
if (NS_SUCCEEDED(ret) && enumerator)
|
||||
{
|
||||
for (enumerator->First(); enumerator->IsDone() != NS_OK; enumerator->Next())
|
||||
{
|
||||
nsIMessage *pMessage = nsnull;
|
||||
ret = enumerator->CurrentItem((nsISupports**)&pMessage);
|
||||
NS_ASSERTION(NS_SUCCEEDED(ret), "nsMsgDBEnumerator broken");
|
||||
if (NS_FAILED(ret))
|
||||
break;
|
||||
|
||||
if (pMessage)
|
||||
{
|
||||
nsMsgKey key;
|
||||
nsString subject;
|
||||
(void)pMessage->GetMessageKey(&key);
|
||||
pMessage->GetSubject(subject);
|
||||
|
||||
printf("message in thread %ld %s\n", key, (const char *) &nsAutoString(subject));
|
||||
}
|
||||
// NS_RELEASE(pMessage);
|
||||
pMessage = nsnull;
|
||||
}
|
||||
NS_RELEASE(enumerator);
|
||||
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -191,14 +191,18 @@ NS_IMETHODIMP nsMsgThread::GetChildHdrAt(PRInt32 index, nsIMessage **result)
|
||||
{
|
||||
nsresult ret = NS_OK;
|
||||
nsIMdbRow* resultRow;
|
||||
mdb_pos pos = index;
|
||||
mdb_pos pos = index - 1;
|
||||
|
||||
if (!result)
|
||||
return NS_ERROR_NULL_POINTER;
|
||||
|
||||
*result = nsnull;
|
||||
nsIMdbTableRowCursor *rowCursor;
|
||||
ret = m_mdbTable->GetTableRowCursor(m_mdbDB->GetEnv(), pos, &rowCursor);
|
||||
|
||||
ret = rowCursor->NextRow(m_mdbDB->GetEnv(), &resultRow, &pos);
|
||||
NS_RELEASE(rowCursor);
|
||||
if (NS_FAILED(ret))
|
||||
if (NS_FAILED(ret) || !resultRow)
|
||||
return ret;
|
||||
|
||||
//Get key from row
|
||||
|
||||
Reference in New Issue
Block a user