Do not use xmlCleanupParser()

This function name is somewhat misleading. It does not clean up parser state,
it cleans up memory allocated by the library itself. It is a cleanup function
for the XML library. It tries to reclaim all related global memory allocated
for the library processing. It doesn't deallocate any document related memory.

One should call xmlCleanupParser() only when the process has finished using the
library and all XML/HTML documents built with it. See also xmlInitParser()
which has the opposite function of preparing the library for operations.

WARNING: if your application is multithreaded or has plugin support calling
this may crash the application if another thread or a plugin is still using
libxml2. It's sometimes very hard to guess if libxml2 is in use in the
application, some libraries or plugins may use it without notice. In case of
doubt abstain from calling this function or do it just before calling exit() to
avoid leak reports from valgrind!

Reference: vzctl@804963
1 file changed