start working through memory bugs
diff --git a/tinyxml2.cpp b/tinyxml2.cpp
index 77c1a8a..0dc5cd4 100755
--- a/tinyxml2.cpp
+++ b/tinyxml2.cpp
@@ -1765,6 +1765,24 @@
#endif
return fp;
}
+
+void XMLDocument::DeleteNode( XMLNode* node ) {
+ TIXMLASSERT( node );
+ TIXMLASSERT(node->_document == this );
+ if (node->_parent) {
+ node->_parent->DeleteChild( node );
+ }
+ else {
+ // Isn't in the tree.
+ // Use the parent delete.
+ // Also, we need to mark it tracked: we 'know'
+ // it was never used.
+ node->_memPool->SetTracked();
+ // Call the static XMLNode version:
+ XMLNode::DeleteNode(node);
+ }
+}
+
XMLError XMLDocument::LoadFile( const char* filename )
{
@@ -1949,9 +1967,9 @@
_entityFlag[ (int)entities[i].value ] = true;
}
}
- _restrictedEntityFlag[(int)'&'] = true;
- _restrictedEntityFlag[(int)'<'] = true;
- _restrictedEntityFlag[(int)'>'] = true; // not required, but consistency is nice
+ _restrictedEntityFlag['&'] = true;
+ _restrictedEntityFlag['<'] = true;
+ _restrictedEntityFlag['>'] = true; // not required, but consistency is nice
_buffer.Push( 0 );
}