[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