diff options
author | Willem Jan Palenstijn | 2012-01-15 18:25:00 +0100 |
---|---|---|
committer | Willem Jan Palenstijn | 2012-01-15 18:25:00 +0100 |
commit | 56fb56936e36b3a91ab575a78514383199388ed9 (patch) | |
tree | d3600ad7d0ea29615a2afac4ca247f20ed408e75 /engines/sci/engine | |
parent | f2c163a5690d20e41ff39245242e7cc0b9eed8eb (diff) | |
download | scummvm-rg350-56fb56936e36b3a91ab575a78514383199388ed9.tar.gz scummvm-rg350-56fb56936e36b3a91ab575a78514383199388ed9.tar.bz2 scummvm-rg350-56fb56936e36b3a91ab575a78514383199388ed9.zip |
SCI: Clean up some memory management and loops
Diffstat (limited to 'engines/sci/engine')
-rw-r--r-- | engines/sci/engine/features.cpp | 9 | ||||
-rw-r--r-- | engines/sci/engine/kscripts.cpp | 10 |
2 files changed, 6 insertions, 13 deletions
diff --git a/engines/sci/engine/features.cpp b/engines/sci/engine/features.cpp index a5c1b970f1..b3cfee873c 100644 --- a/engines/sci/engine/features.cpp +++ b/engines/sci/engine/features.cpp @@ -430,19 +430,16 @@ SciVersion GameFeatures::detectMessageFunctionType() { return _messageFunctionType; } - Common::List<ResourceId> *resources = g_sci->getResMan()->listResources(kResourceTypeMessage, -1); - - if (resources->empty()) { - delete resources; + Common::List<ResourceId> resources = g_sci->getResMan()->listResources(kResourceTypeMessage, -1); + if (resources.empty()) { // No messages found, so this doesn't really matter anyway... _messageFunctionType = SCI_VERSION_1_1; return _messageFunctionType; } - Resource *res = g_sci->getResMan()->findResource(*resources->begin(), false); + 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. diff --git a/engines/sci/engine/kscripts.cpp b/engines/sci/engine/kscripts.cpp index 93c1fffe3c..9b0e490d7e 100644 --- a/engines/sci/engine/kscripts.cpp +++ b/engines/sci/engine/kscripts.cpp @@ -74,17 +74,13 @@ reg_t kLock(EngineState *s, int argc, reg_t *argv) { case 0 : if (id.getNumber() == 0xFFFF) { // Unlock all resources of the requested type - Common::List<ResourceId> *resources = g_sci->getResMan()->listResources(type); - Common::List<ResourceId>::iterator itr = resources->begin(); - - while (itr != resources->end()) { + Common::List<ResourceId> resources = g_sci->getResMan()->listResources(type); + Common::List<ResourceId>::iterator itr; + for (itr = resources.begin(); itr != resources.end(); ++itr) { Resource *res = g_sci->getResMan()->testResource(*itr); if (res->isLocked()) g_sci->getResMan()->unlockResource(res); - ++itr; } - - delete resources; } else { which = g_sci->getResMan()->findResource(id, 0); |