Skip to content
Snippets Groups Projects
Commit c641b22e authored by bienvenu%nventure.com's avatar bienvenu%nventure.com
Browse files

fix threaded view not displaying some messages when messages arrive out of...

fix threaded view not displaying some messages when messages arrive out of thread order and a common ancestor is missing, 328935, sr=mscott
parent 402aa419
No related merge requests found
......@@ -797,17 +797,27 @@ const char *nsMsgHdr::GetPrevReference(const char *prevRef, nsCString &reference
PRBool nsMsgHdr::IsParentOf(nsIMsgDBHdr *possibleChild)
{
PRUint16 numReferences = 0;
possibleChild->GetNumReferences(&numReferences);
PRUint16 referenceToCheck = 0;
possibleChild->GetNumReferences(&referenceToCheck);
nsCAutoString reference;
nsXPIDLCString messageId;
GetMessageId(getter_Copies(messageId));
if (numReferences > 0)
while (referenceToCheck > 0)
{
possibleChild->GetStringReference(numReferences - 1, reference);
possibleChild->GetStringReference(referenceToCheck - 1, reference);
return (reference.Equals(messageId));
if (reference.Equals(messageId))
return PR_TRUE;
// if reference didn't match, check if this ref is for a non-existent
// header. If it is, continue looking at ancestors.
nsCOMPtr <nsIMsgDBHdr> refHdr;
if (!m_mdb)
break;
(void) m_mdb->GetMsgHdrForMessageID(reference.get(), getter_AddRefs(refHdr));
if (refHdr)
break;
referenceToCheck--;
}
return PR_FALSE;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment