blocker bug 74728, r=pinkerton, Check for null mTokenAllocator before trying to free a token, for some reason unbeknowst to me, view source likes to create nsCParserNodes with a null allocator. Why this didn't bite us in the ass before is also beyond me.

git-svn-id: svn://10.0.0.236/trunk@91321 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
pchen%netscape.com 2001-04-04 18:38:28 +00:00
parent c2d245c145
commit 2ff09311e0
2 changed files with 16 additions and 4 deletions

View File

@ -102,7 +102,10 @@ nsresult nsCParserNode::Init(CToken* aToken,PRInt32 aLineNumber,nsTokenAllocator
if(mAttributes && (mAttributes->GetSize())) {
CToken* theAttrToken=0;
while((theAttrToken=NS_STATIC_CAST(CToken*,mAttributes->Pop()))) {
IF_FREE(theAttrToken, aTokenAllocator);
// nsViewSourceHTML.cpp:513 creates nsCParserNodes with a NULL token allocator
// need to check to see if mTokenAllocator is non-null
if(aTokenAllocator)
IF_FREE(theAttrToken, aTokenAllocator);
}
}
mToken=aToken;
@ -343,7 +346,10 @@ nsresult nsCParserNode::ReleaseAll() {
if(mAttributes) {
CToken* theAttrToken=0;
while((theAttrToken=NS_STATIC_CAST(CToken*,mAttributes->Pop()))) {
IF_FREE(theAttrToken, mTokenAllocator);
// nsViewSourceHTML.cpp:513 creates nsCParserNodes with a NULL token allocator
// need to check to see if mTokenAllocator is non-null
if(mTokenAllocator)
IF_FREE(theAttrToken, mTokenAllocator);
}
delete mAttributes;
mAttributes=0;

View File

@ -102,7 +102,10 @@ nsresult nsCParserNode::Init(CToken* aToken,PRInt32 aLineNumber,nsTokenAllocator
if(mAttributes && (mAttributes->GetSize())) {
CToken* theAttrToken=0;
while((theAttrToken=NS_STATIC_CAST(CToken*,mAttributes->Pop()))) {
IF_FREE(theAttrToken, aTokenAllocator);
// nsViewSourceHTML.cpp:513 creates nsCParserNodes with a NULL token allocator
// need to check to see if mTokenAllocator is non-null
if(aTokenAllocator)
IF_FREE(theAttrToken, aTokenAllocator);
}
}
mToken=aToken;
@ -343,7 +346,10 @@ nsresult nsCParserNode::ReleaseAll() {
if(mAttributes) {
CToken* theAttrToken=0;
while((theAttrToken=NS_STATIC_CAST(CToken*,mAttributes->Pop()))) {
IF_FREE(theAttrToken, mTokenAllocator);
// nsViewSourceHTML.cpp:513 creates nsCParserNodes with a NULL token allocator
// need to check to see if mTokenAllocator is non-null
if(mTokenAllocator)
IF_FREE(theAttrToken, mTokenAllocator);
}
delete mAttributes;
mAttributes=0;