[Cppunit-devel] Memory leak in CppUnit 1.9.14
Brought to you by:
blep
From: <swn...@he...> - 2004-06-02 15:56:36
|
Dear CppUnit developers, there is a memory leak in TestResultCollector. Here is the original file = TestResultCollector.cpp: TestResultCollector::~TestResultCollector() { TestFailures::iterator itFailure =3D m_failures.begin(); while ( itFailure !=3D m_failures.end() ) delete *itFailure++; } void=20 TestResultCollector::reset() { TestSuccessListener::reset(); ExclusiveZone zone( m_syncObject );=20 m_testErrors =3D 0; m_tests.clear(); m_failures.clear(); // *** LEAK: m_failures has been fed TestFailure = clones which are now lost! *** } This should be changed to look something like this: void TestResultCollector::cleanUpResources() // *** Must be declared in = header file. *** { TestFailures::iterator itFailure =3D m_failures.begin(); while ( itFailure !=3D m_failures.end() ) delete *itFailure++; } TestResultCollector::~TestResultCollector() { cleanUpResources(); // *** Just as before *** } void=20 TestResultCollector::reset() { TestSuccessListener::reset(); ExclusiveZone zone( m_syncObject );=20 m_testErrors =3D 0; m_tests.clear(); cleanUpResources(); // *** Leak no longer present. *** m_failures.clear(); } Cheers, DR. JOHANNES HEIDENHAIN GmbH Christoph K=F6gl -------------------------------------------------------- mailto:swn...@he... tel +49 / 8669 / 31-1008 fax +49 / 8669 / 32-1008 -------------------------------------------------------- DR. JOHANNES HEIDENHAIN GmbH Dr.-Johannes-Heidenhain-Str. 5 83301 Traunreut GERMANY http://www.heidenhain.de |