From bcaf5ec635b95d2f1ecf5a7719f5633f1236d9fe Mon Sep 17 00:00:00 2001 From: "akkana%netscape.com" Date: Mon, 13 Sep 1999 20:26:14 +0000 Subject: [PATCH] Fix memory leak 13641: don't allocate a new CAttributeToken unless we're going to pass it to AddAttribute git-svn-id: svn://10.0.0.236/trunk@47156 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/htmlparser/src/nsXIFDTD.cpp | 15 +++++++++------ mozilla/parser/htmlparser/src/nsXIFDTD.cpp | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/mozilla/htmlparser/src/nsXIFDTD.cpp b/mozilla/htmlparser/src/nsXIFDTD.cpp index 015ec2ae96b..f271e13c595 100644 --- a/mozilla/htmlparser/src/nsXIFDTD.cpp +++ b/mozilla/htmlparser/src/nsXIFDTD.cpp @@ -624,15 +624,18 @@ nsresult nsXIFDTD::HandleTextToken(CToken* aToken) { void nsXIFDTD::AddAttribute(nsIParserNode& aNode) { - nsString key; - nsString value; - PRBool hasValue; - - hasValue = GetAttributePair(aNode,key,value); - CAttributeToken* attribute = new CAttributeToken(key,value); nsIParserNode* top = PeekNode(); if (top != nsnull) + { + nsString key; + nsString value; + PRBool hasValue; + + hasValue = GetAttributePair(aNode,key,value); + // XXX should we still be calling AddAttribute if hasValue is false? + CAttributeToken* attribute = new CAttributeToken(key,value); ((nsCParserNode*)top)->AddAttribute(attribute); + } } diff --git a/mozilla/parser/htmlparser/src/nsXIFDTD.cpp b/mozilla/parser/htmlparser/src/nsXIFDTD.cpp index 015ec2ae96b..f271e13c595 100644 --- a/mozilla/parser/htmlparser/src/nsXIFDTD.cpp +++ b/mozilla/parser/htmlparser/src/nsXIFDTD.cpp @@ -624,15 +624,18 @@ nsresult nsXIFDTD::HandleTextToken(CToken* aToken) { void nsXIFDTD::AddAttribute(nsIParserNode& aNode) { - nsString key; - nsString value; - PRBool hasValue; - - hasValue = GetAttributePair(aNode,key,value); - CAttributeToken* attribute = new CAttributeToken(key,value); nsIParserNode* top = PeekNode(); if (top != nsnull) + { + nsString key; + nsString value; + PRBool hasValue; + + hasValue = GetAttributePair(aNode,key,value); + // XXX should we still be calling AddAttribute if hasValue is false? + CAttributeToken* attribute = new CAttributeToken(key,value); ((nsCParserNode*)top)->AddAttribute(attribute); + } }