Merge pull request #504 from Dmitry-Me/ensureLinkPointersAreNotOverwritten

Ensure existing attributes are not leaked on attribute insertion
This commit is contained in:
Lee Thomason
2016-12-24 07:39:17 -08:00
committed by GitHub

View File

@@ -1731,9 +1731,11 @@ XMLAttribute* XMLElement::FindOrCreateAttribute( const char* name )
attrib = CreateAttribute();
TIXMLASSERT( attrib );
if ( last ) {
TIXMLASSERT( last->_next == 0 );
last->_next = attrib;
}
else {
TIXMLASSERT( _rootAttribute == 0 );
_rootAttribute = attrib;
}
attrib->SetName( name );
@@ -1794,9 +1796,11 @@ char* XMLElement::ParseAttributes( char* p, int* curLineNumPtr )
// avoids re-scanning the attribute list. Preferring performance for
// now, may reconsider in the future.
if ( prevAttribute ) {
TIXMLASSERT( prevAttribute->_next == 0 );
prevAttribute->_next = attrib;
}
else {
TIXMLASSERT( _rootAttribute == 0 );
_rootAttribute = attrib;
}
prevAttribute = attrib;