[Scummvm-cvs-logs] SF.net SVN: scummvm:[54580] scummvm/trunk/backends/modular-backend.cpp
tdhs at users.sourceforge.net
tdhs at users.sourceforge.net
Mon Nov 29 19:22:31 CET 2010
Revision: 54580
http://scummvm.svn.sourceforge.net/scummvm/?rev=54580&view=rev
Author: tdhs
Date: 2010-11-29 18:22:31 +0000 (Mon, 29 Nov 2010)
Log Message:
-----------
BACKENDS: Improve safety of Modular Backend Destructor And Close _fsFactory Memory Leak
Since the modular backend implements abstract modules to be written in the future which _may_ have interdependencies, they should be set to null pointers after deletion.
This allows assert(_eventManager) type lines to work, which would have detected bug #3121841 without a segfault...
Also, _fsFactory should be deleted to ensure it is not leaked though this causes a group of GCC warnings and probably should be done in a different manner.
Modified Paths:
--------------
scummvm/trunk/backends/modular-backend.cpp
Modified: scummvm/trunk/backends/modular-backend.cpp
===================================================================
--- scummvm/trunk/backends/modular-backend.cpp 2010-11-29 18:16:11 UTC (rev 54579)
+++ scummvm/trunk/backends/modular-backend.cpp 2010-11-29 18:22:31 UTC (rev 54580)
@@ -18,8 +18,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/branches/gsoc2010-opengl/backends/modular-backend.cpp $
- * $Id: modular-backend.cpp 53441 2010-10-13 17:58:48Z lordhoto $
+ * $URL$
+ * $Id$
*
*/
@@ -40,13 +40,22 @@
}
ModularBackend::~ModularBackend() {
+ delete _fsFactory;
+ _fsFactory = 0;
delete _graphicsManager;
+ _graphicsManager = 0;
delete _eventManager;
+ _eventManager = 0;
delete _mixer;
+ _mixer = 0;
delete _audiocdManager;
+ _audiocdManager = 0;
delete _savefileManager;
+ _savefileManager = 0;
delete _timerManager;
+ _timerManager = 0;
delete _mutexManager;
+ _mutexManager = 0;
}
bool ModularBackend::hasFeature(Feature f) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list