[Scummvm-cvs-logs] SF.net SVN: scummvm:[51666] scummvm/trunk/engines/sci

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Tue Aug 3 00:27:26 CEST 2010


Revision: 51666
          http://scummvm.svn.sourceforge.net/scummvm/?rev=51666&view=rev
Author:   lordhoto
Date:     2010-08-02 22:27:26 +0000 (Mon, 02 Aug 2010)

Log Message:
-----------
SCI: Fix leaks in ResourceManager::listResources caller code.

Modified Paths:
--------------
    scummvm/trunk/engines/sci/console.cpp
    scummvm/trunk/engines/sci/detection.cpp
    scummvm/trunk/engines/sci/engine/features.cpp
    scummvm/trunk/engines/sci/engine/kscripts.cpp
    scummvm/trunk/engines/sci/resource.cpp

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2010-08-02 22:12:45 UTC (rev 51665)
+++ scummvm/trunk/engines/sci/console.cpp	2010-08-02 22:27:26 UTC (rev 51666)
@@ -844,6 +844,7 @@
 	}
 
 	DebugPrintf("SCI1.1-SCI2.1 script check finished\n");
+	delete resources;
 
 	return true;
 }
@@ -1006,6 +1007,7 @@
 		DebugPrintf("\n\n");
 	}
 
+	delete resources;
 	return true;
 }
 
@@ -1051,7 +1053,6 @@
 			++itr;
 		}
 		DebugPrintf("\n");
-
 		delete resources;
 	}
 

Modified: scummvm/trunk/engines/sci/detection.cpp
===================================================================
--- scummvm/trunk/engines/sci/detection.cpp	2010-08-02 22:12:45 UTC (rev 51665)
+++ scummvm/trunk/engines/sci/detection.cpp	2010-08-02 22:27:26 UTC (rev 51666)
@@ -299,7 +299,7 @@
 	if (sierraId == "fp" || sierraId == "gk" || sierraId == "pq4")
 		demoThreshold = 150;
 
-	Common::List<ResourceId> *resources = resMan->listResources(kResourceTypeScript, -1);
+	Common::ScopedPtr<Common::List<ResourceId> > resources(resMan->listResources(kResourceTypeScript, -1));
 	if (resources->size() < demoThreshold) {
 		*gameFlags |= ADGF_DEMO;
 

Modified: scummvm/trunk/engines/sci/engine/features.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/features.cpp	2010-08-02 22:12:45 UTC (rev 51665)
+++ scummvm/trunk/engines/sci/engine/features.cpp	2010-08-02 22:27:26 UTC (rev 51666)
@@ -438,6 +438,8 @@
 	Common::List<ResourceId> *resources = g_sci->getResMan()->listResources(kResourceTypeMessage, -1);
 
 	if (resources->empty()) {
+		delete resources;
+
 		// No messages found, so this doesn't really matter anyway...
 		_messageFunctionType = SCI_VERSION_1_1;
 		return _messageFunctionType;
@@ -445,6 +447,7 @@
 
 	Resource *res = g_sci->getResMan()->findResource(*resources->begin(), false);
 	assert(res);
+	delete resources;
 
 	// Only v2 Message resources use the kGetMessage kernel function.
 	// v3-v5 use the kMessage kernel function.

Modified: scummvm/trunk/engines/sci/engine/kscripts.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kscripts.cpp	2010-08-02 22:12:45 UTC (rev 51665)
+++ scummvm/trunk/engines/sci/engine/kscripts.cpp	2010-08-02 22:27:26 UTC (rev 51666)
@@ -95,6 +95,7 @@
 				++itr;
 			}
 
+			delete resources;
 		} else {
 			which = g_sci->getResMan()->findResource(id, 0);
 

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2010-08-02 22:12:45 UTC (rev 51665)
+++ scummvm/trunk/engines/sci/resource.cpp	2010-08-02 22:27:26 UTC (rev 51666)
@@ -665,6 +665,7 @@
 		++itr;
 	}
 
+	delete resources;
 	return 1;
 }
 


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