[Scummvm-cvs-logs] SF.net SVN: scummvm: [31731] scummvm/trunk

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sat Apr 26 12:21:53 CEST 2008


Revision: 31731
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31731&view=rev
Author:   lordhoto
Date:     2008-04-26 03:21:53 -0700 (Sat, 26 Apr 2008)

Log Message:
-----------
Fixed segfault when trying to start invalid gameid from command line.

Modified Paths:
--------------
    scummvm/trunk/base/main.cpp
    scummvm/trunk/common/singleton.h

Modified: scummvm/trunk/base/main.cpp
===================================================================
--- scummvm/trunk/base/main.cpp	2008-04-26 10:15:54 UTC (rev 31730)
+++ scummvm/trunk/base/main.cpp	2008-04-26 10:21:53 UTC (rev 31731)
@@ -330,9 +330,9 @@
 		launcherDialog(system);
 	}
 	PluginManager::instance().unloadPluginsExcept(NULL);
-	PluginManager::instance().destroy();
-	ConfMan.destroy();
-	g_gui.destroy();
+	PluginManager::destroy();
+	Common::ConfigManager::destroy();
+	GUI::NewGui::destroy();
 
 	return 0;
 }

Modified: scummvm/trunk/common/singleton.h
===================================================================
--- scummvm/trunk/common/singleton.h	2008-04-26 10:15:54 UTC (rev 31730)
+++ scummvm/trunk/common/singleton.h	2008-04-26 10:21:53 UTC (rev 31731)
@@ -57,7 +57,12 @@
 		return new T();
 	}
 
+	static void destroyInstance() {
+		delete _singleton;
+		_singleton = 0;
+	}
 
+
 public:
 	static T& instance() {
 		// TODO: We aren't thread safe. For now we ignore it since the
@@ -71,9 +76,9 @@
 			_singleton = T::makeInstance();
 		return *_singleton;
 	}
-	virtual void destroy() {
-		delete _singleton;
-		_singleton = 0;
+
+	static void destroy() {
+		T::destroyInstance();
 	}
 protected:
 	Singleton<T>()		{ }


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