Fixed destroying of attribute/node name/values (it now uses custom deallocation function, if any)

git-svn-id: http://pugixml.googlecode.com/svn/trunk@121 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2009-04-10 10:06:47 +00:00
parent 1e37455c1b
commit c95b553a81

View File

@ -114,8 +114,17 @@ namespace pugi
void destroy() void destroy()
{ {
if (!name_insitu) delete[] name; if (!name_insitu)
if (!value_insitu) delete[] value; {
global_deallocate(name);
name = 0;
}
if (!value_insitu)
{
global_deallocate(value);
value = 0;
}
} }
bool name_insitu : 1; bool name_insitu : 1;
@ -144,13 +153,13 @@ namespace pugi
if (!name_insitu) if (!name_insitu)
{ {
delete[] name; global_deallocate(name);
name = 0; name = 0;
} }
if (!value_insitu) if (!value_insitu)
{ {
delete[] value; global_deallocate(value);
value = 0; value = 0;
} }
@ -2876,8 +2885,11 @@ namespace pugi
void xml_document::destroy() void xml_document::destroy()
{ {
global_deallocate(_buffer); if (_buffer)
_buffer = 0; {
global_deallocate(_buffer);
_buffer = 0;
}
if (_root) _root->destroy(); if (_root) _root->destroy();