diff options
-rw-r--r-- | src/xplist.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/xplist.c b/src/xplist.c index e368b8b..1ee0138 100644 --- a/src/xplist.c +++ b/src/xplist.c @@ -556,6 +556,14 @@ PLIST_API void plist_to_xml(plist_t plist, char **plist_xml, uint32_t * length) setlocale(LC_NUMERIC, saved_locale); free(saved_locale); } + + /* free memory from parser initialization */ + xmlCleanupCharEncodingHandlers(); + xmlDictCleanup(); + xmlResetLastError(); + xmlCleanupGlobals(); + xmlCleanupThreads(); + xmlCleanupMemory(); } static xmlParserInputPtr plist_xml_external_entity_loader(const char *URL, const char *ID, xmlParserCtxtPtr ctxt) @@ -576,4 +584,12 @@ PLIST_API void plist_from_xml(const char *plist_xml, uint32_t length, plist_t * xml_to_node(root_node, plist); xmlFreeDoc(plist_doc); } + + /* free memory from parser initialization */ + xmlCleanupCharEncodingHandlers(); + xmlDictCleanup(); + xmlResetLastError(); + xmlCleanupGlobals(); + xmlCleanupThreads(); + xmlCleanupMemory(); } |