diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp index 296e1271049..f3398e00486 100644 --- a/mozilla/parser/htmlparser/src/CNavDTD.cpp +++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp @@ -742,12 +742,11 @@ CNavDTD::HandleToken(CToken* aToken, nsIParser* aParser) break; } - if (NS_SUCCEEDED(result) || NS_ERROR_HTMLPARSER_BLOCK == result) { - IF_FREE(theToken, mTokenAllocator); - } else if (result == NS_ERROR_HTMLPARSER_STOPPARSING) { + IF_FREE(theToken, mTokenAllocator); + if (result == NS_ERROR_HTMLPARSER_STOPPARSING) { mFlags |= NS_DTD_FLAG_STOP_PARSING; - } else { - return NS_OK; + } else if (NS_FAILED(result) && result != NS_ERROR_HTMLPARSER_BLOCK) { + result = NS_OK; } } @@ -2016,12 +2015,6 @@ CNavDTD::HandleDocTypeDeclToken(CToken* aToken) IF_FREE(theNode, &mNodeAllocator); - // Hack for bug 395846, if we failed to add the node for whatever reason, - // then we need to free the token ourselves. - if (NS_FAILED(result) && result != NS_ERROR_HTMLPARSER_BLOCK) { - IF_FREE(aToken, mTokenAllocator); - } - MOZ_TIMER_DEBUGLOG(("Start: Parse Time: CNavDTD::HandleDocTypeDeclToken(), this=%p\n", this)); START_TIMER();