There are memory leaks in the distrib package, the main offender is in
libsbml::DistribFunctionDefinitionPlugin::createObject(libsbml::XMLInputStream&)
There are a large number of other indirect leaks, but I'm guessing they will get fixed if the above problem is fixed. The exact stack trace of where the leak is is here:
==2265== 4,951 (1,360 direct, 3,591 indirect) bytes in 1 blocks are definitely lost in loss record 331 of 333
==2265== at 0x70DB: malloc (in /usr/local/Cellar/valgrind/3.9.0/lib/valgrind/vgpreload_memcheck-amd64-darwin.so)
==2265== by 0x217D68D: operator new(unsigned long) (in /usr/lib/libstdc++.6.0.9.dylib)
==2265== by 0x2AF6F4: libsbml::DistribFunctionDefinitionPlugin::createObject(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x39DFAC: libsbml::SBase::createExtensionObject(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x399F2D: libsbml::SBase::read(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x399FEE: libsbml::SBase::read(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x399FEE: libsbml::SBase::read(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x399FEE: libsbml::SBase::read(libsbml::XMLInputStream&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x3CBD84: libsbml::SBMLReader::readInternal(char const, bool) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x3CCC1E: libsbml::SBMLReader::readSBMLFromString(std::string const&) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x3CDB7D: readSBMLFromString (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x129157: rrllvm::checkedReadSBMLFromString(char const) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x12812D: rrllvm::ModelGeneratorContext::ModelGeneratorContext(std::string const&, unsigned int) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x128022: rrllvm::ModelGeneratorContext::ModelGeneratorContext(std::string const&, unsigned int) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x121AF8: rrllvm::LLVMModelGenerator::createModel(std::string const&, unsigned int) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x4DC8B: rr::RoadRunner::load(std::string const&, rr::LoadSBMLOptions const) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x4D550: rr::RoadRunner::RoadRunner(std::string const&, rr::LoadSBMLOptions const) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x4D3B4: rr::RoadRunner::RoadRunner(std::string const&, rr::LoadSBMLOptions const) (in /Users/andy/libroadrunner/lib/libroadrunner_c_api.dylib)
==2265== by 0x1000043D2: distrib_test(int, char*) (in /Users/andy/libroadrunner/bin/llvm_testing)
==2265== by 0x100004A11: main (in /Users/andy/libroadrunner/bin/llvm_testing)
Thanks for letting us know, this should be fixed in svn now, and will be in the next release.
Frank