[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