Ensure existing attributes are not leaked on attribute insertion
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 96f3ad7..6fd9363 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -1717,9 +1717,11 @@
attrib = CreateAttribute();
TIXMLASSERT( attrib );
if ( last ) {
+ TIXMLASSERT( last->_next == 0 );
last->_next = attrib;
}
else {
+ TIXMLASSERT( _rootAttribute == 0 );
_rootAttribute = attrib;
}
attrib->SetName( name );
@@ -1777,9 +1779,11 @@
// 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;