[Scummvm-cvs-logs] SF.net SVN: scummvm:[54916] scummvm/trunk/engines/sci/resource.cpp
tdhs at users.sourceforge.net
tdhs at users.sourceforge.net
Wed Dec 15 00:30:22 CET 2010
Revision: 54916
http://scummvm.svn.sourceforge.net/scummvm/?rev=54916&view=rev
Author: tdhs
Date: 2010-12-14 23:30:22 +0000 (Tue, 14 Dec 2010)
Log Message:
-----------
SCI: Close Memory Leaks in SCI Resource Loading, reported by Valgrind.
Modified Paths:
--------------
scummvm/trunk/engines/sci/resource.cpp
Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp 2010-12-14 23:12:10 UTC (rev 54915)
+++ scummvm/trunk/engines/sci/resource.cpp 2010-12-14 23:30:22 UTC (rev 54916)
@@ -195,6 +195,7 @@
Resource::~Resource() {
delete[] data;
+ delete[] _header;
if (_source && _source->getSourceType() == kSourcePatch)
delete _source;
}
@@ -1091,8 +1092,10 @@
fileStream = file;
}
break;
- } else if (rsrc->getSourceType() == kSourceMacResourceFork)
+ } else if (rsrc->getSourceType() == kSourceMacResourceFork) {
+ delete fileStream;
return kResVersionSci11Mac;
+ }
}
if (!fileStream)
@@ -1106,9 +1109,12 @@
// check if 0 or 01 - try to read resources in SCI0 format and see if exists
fileStream->seek(0, SEEK_SET);
while (fileStream->read(buff, 6) == 6 && !(buff[0] == 0xFF && buff[1] == 0xFF && buff[2] == 0xFF)) {
- if (findVolume(rsrc, (buff[5] & 0xFC) >> 2) == NULL)
+ if (findVolume(rsrc, (buff[5] & 0xFC) >> 2) == NULL) {
+ delete fileStream;
return kResVersionSci1Middle;
+ }
}
+ delete fileStream;
return kResVersionSci0Sci1Early;
}
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