plug a major mem hog.
authorRobin Gareus <robin@gareus.org>
Tue, 9 Sep 2014 21:53:27 +0000 (23:53 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 9 Sep 2014 21:53:27 +0000 (23:53 +0200)
(default empty session is now ~140MB RSS, was 280MB)
libXML memory was only free() at exit

libs/midi++2/midi++/midnam_patch.h
libs/midi++2/midnam_patch.cc

index 9b2a611d9e82a76e0231594bba3fa16a01f90a0e..4e5bb29f5584e8ddb5a5abc17462ede4195b55e5 100644 (file)
@@ -485,7 +485,6 @@ public:
 private:
        std::string                   _author;
        MasterDeviceNamesList         _master_device_names_list;
-       XMLTree                       _document;
        MasterDeviceNames::Models     _all_models;
 };
 
index 1ec60622059cb300b918de88e440274de5df9dc8..bf841e9a68e398fbe7f991d00e9f6618427ddd3d 100644 (file)
@@ -877,12 +877,13 @@ MasterDeviceNames::get_state(void)
 
 MIDINameDocument::MIDINameDocument (const string& filename)
 {
-       if (!_document.read (filename)) {
+       XMLTree document;
+       if (!document.read (filename)) {
                throw failed_constructor ();
        }
 
-       _document.set_filename (filename);
-       set_state (_document, *_document.root());
+       document.set_filename (filename);
+       set_state (document, *document.root());
 }
 
 int