summaryrefslogtreecommitdiff
path: root/src/pugixml.cpp
diff options
context:
space:
mode:
authorArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-22 08:38:52 -0700
committerArseny Kapoulkine <arseny.kapoulkine@gmail.com>2015-04-22 08:38:52 -0700
commit3643b505a6f95e65037c5d906e7fb81ac16698cf (patch)
tree54ea489fc1426fb326870a429f7a525e53369d28 /src/pugixml.cpp
parent4223b4a3f0d2058fcfac551055550384b650f70a (diff)
Fix node_pi memory leak
Diffstat (limited to 'src/pugixml.cpp')
-rw-r--r--src/pugixml.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp
index 80d9d9f..c5e77e8 100644
--- a/src/pugixml.cpp
+++ b/src/pugixml.cpp
@@ -1163,6 +1163,14 @@ PUGI__NS_BEGIN
if (n->header & impl::xml_memory_page_contents_allocated_mask)
alloc.deallocate_string(n->contents);
+ if (PUGI__NODETYPE(n) == node_pi)
+ {
+ xml_node_pi_struct* pn = static_cast<xml_node_pi_struct*>(n);
+
+ if (pn->pi_header & impl::xml_memory_page_contents_allocated_mask)
+ alloc.deallocate_string(pn->pi_value);
+ }
+
for (xml_attribute_struct* attr = n->first_attribute; attr; )
{
xml_attribute_struct* next = attr->next_attribute;