else NS_ASSERTION(PR_FALSE, "couldn't get child from thread");
nsMsgThreadEnumerator::nsMsgThreadEnumerator(nsMsgThread *thread, nsMsgKey startKey,                                     nsMsgThreadEnumeratorFilter filter, void* closure)    : mRowCursor(nsnull), mResultHdr(nsnull), mDone(PR_FALSE),      mFilter(filter), mClosure(closure){    NS_INIT_REFCNT();	mCurKey = startKey;	mChildIndex = 1;	mThread = thread;	if (mCurKey != nsMsgKey_None)	{		nsMsgKey msgKey = nsMsgKey_None;		nsresult rv = mThread->GetChildHdrAt(0, &mResultHdr);		if (NS_SUCCEEDED(rv) && mResultHdr)		{			// we're only doing one level of threading, so check if caller is			// asking for children of the first message in the thread or not.			// if not, we will tell him there are no children.			mResultHdr->GetMessageKey(&msgKey);			if (msgKey != mCurKey)				mDone = PR_TRUE;			NS_RELEASE(mResultHdr);			mResultHdr = nsnull;		}		mChildIndex = 1;	}    NS_ADDREF(thread);}