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); + } + } } }