From 54856496e7f9bce0fda610b90590d2b9e3204ad0 Mon Sep 17 00:00:00 2001 From: "harishd%netscape.com" Date: Tue, 1 Aug 2000 01:02:09 +0000 Subject: [PATCH] Migrating ------------- 46269 [nsbeta2+] - Fixed a crash, in CStartToken::IsEmpty(), caused by a wrong casting. r=hiekki. git-svn-id: svn://10.0.0.236/trunk@75284 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/htmlparser/src/COtherElements.h | 13 +++++++++---- mozilla/parser/htmlparser/src/COtherElements.h | 13 +++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/mozilla/htmlparser/src/COtherElements.h b/mozilla/htmlparser/src/COtherElements.h index 02653f12a3d..fb908722f50 100644 --- a/mozilla/htmlparser/src/COtherElements.h +++ b/mozilla/htmlparser/src/COtherElements.h @@ -1912,10 +1912,15 @@ public: CElement *theElement=GetElement(aTag); if(NS_SUCCEEDED(result)) { - nsCParserNode *theNode=(nsCParserNode*)aNode; - CStartToken *theToken=(CStartToken*)theNode->mToken; - if(theToken->IsEmpty() && (aTag==aContext->Last())){ - result=CElement::HandleEndToken(aNode,aTag,aContext,aSink); + if(aNode) { + nsCParserNode* theNode=(nsCParserNode*)aNode; + eHTMLTokenTypes theType=eHTMLTokenTypes(theNode->GetTokenType()); + if(theType==eToken_start) { + CStartToken *theToken=(CStartToken*)theNode->mToken; + if(theToken && theToken->IsEmpty() && (aTag==aContext->Last())){ + result=CElement::HandleEndToken(aNode,aTag,aContext,aSink); + } + } } } diff --git a/mozilla/parser/htmlparser/src/COtherElements.h b/mozilla/parser/htmlparser/src/COtherElements.h index 02653f12a3d..fb908722f50 100644 --- a/mozilla/parser/htmlparser/src/COtherElements.h +++ b/mozilla/parser/htmlparser/src/COtherElements.h @@ -1912,10 +1912,15 @@ public: CElement *theElement=GetElement(aTag); if(NS_SUCCEEDED(result)) { - nsCParserNode *theNode=(nsCParserNode*)aNode; - CStartToken *theToken=(CStartToken*)theNode->mToken; - if(theToken->IsEmpty() && (aTag==aContext->Last())){ - result=CElement::HandleEndToken(aNode,aTag,aContext,aSink); + if(aNode) { + nsCParserNode* theNode=(nsCParserNode*)aNode; + eHTMLTokenTypes theType=eHTMLTokenTypes(theNode->GetTokenType()); + if(theType==eToken_start) { + CStartToken *theToken=(CStartToken*)theNode->mToken; + if(theToken && theToken->IsEmpty() && (aTag==aContext->Last())){ + result=CElement::HandleEndToken(aNode,aTag,aContext,aSink); + } + } } }