mirror of https://github.com/AxioDL/tinyxml2.git
Merge pull request #504 from Dmitry-Me/ensureLinkPointersAreNotOverwritten
Ensure existing attributes are not leaked on attribute insertion
This commit is contained in:
commit
5b733ff481
|
@ -1731,9 +1731,11 @@ XMLAttribute* XMLElement::FindOrCreateAttribute( const char* name )
|
||||||
attrib = CreateAttribute();
|
attrib = CreateAttribute();
|
||||||
TIXMLASSERT( attrib );
|
TIXMLASSERT( attrib );
|
||||||
if ( last ) {
|
if ( last ) {
|
||||||
|
TIXMLASSERT( last->_next == 0 );
|
||||||
last->_next = attrib;
|
last->_next = attrib;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
TIXMLASSERT( _rootAttribute == 0 );
|
||||||
_rootAttribute = attrib;
|
_rootAttribute = attrib;
|
||||||
}
|
}
|
||||||
attrib->SetName( name );
|
attrib->SetName( name );
|
||||||
|
@ -1794,9 +1796,11 @@ char* XMLElement::ParseAttributes( char* p, int* curLineNumPtr )
|
||||||
// avoids re-scanning the attribute list. Preferring performance for
|
// avoids re-scanning the attribute list. Preferring performance for
|
||||||
// now, may reconsider in the future.
|
// now, may reconsider in the future.
|
||||||
if ( prevAttribute ) {
|
if ( prevAttribute ) {
|
||||||
|
TIXMLASSERT( prevAttribute->_next == 0 );
|
||||||
prevAttribute->_next = attrib;
|
prevAttribute->_next = attrib;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
TIXMLASSERT( _rootAttribute == 0 );
|
||||||
_rootAttribute = attrib;
|
_rootAttribute = attrib;
|
||||||
}
|
}
|
||||||
prevAttribute = attrib;
|
prevAttribute = attrib;
|
||||||
|
|
Loading…
Reference in New Issue