I have a class that uses libxml2. It has static members which are used to hold context for a schema file and its parser. I’m using valgrind, and it’s complaining that memory is not deallocated in connection with the schema context. This is because you need to free that memory yourself. However, since these context variables are static, I can’t free on destruction of the object. Is there a way to call the necessary free functions, or should I just ignore valgrind.
Share
Declare another class within your XML-using class. In its destructor, clean up your static members. Now give the outer class another static member of the inner class type. By virtue of having a non-trivial destructor, it will get cleaned up as the program exits, and thus your other values will get cleaned up, too.
Define
UseLibXml::static_cleanupthe same place you define the other static variables, in one of your .cpp files.