[Scummvm-cvs-logs] SF.net SVN: scummvm:[55566] scummvm/trunk/engines/drascula/drascula.cpp
tdhs at users.sourceforge.net
tdhs at users.sourceforge.net
Thu Jan 27 15:07:45 CET 2011
Revision: 55566
http://scummvm.svn.sourceforge.net/scummvm/?rev=55566&view=rev
Author: tdhs
Date: 2011-01-27 14:07:45 +0000 (Thu, 27 Jan 2011)
Log Message:
-----------
DRASCULA: Fix Memory Leak in drascula.dat Loading.
Modified Paths:
--------------
scummvm/trunk/engines/drascula/drascula.cpp
Modified: scummvm/trunk/engines/drascula/drascula.cpp
===================================================================
--- scummvm/trunk/engines/drascula/drascula.cpp 2011-01-27 13:27:58 UTC (rev 55565)
+++ scummvm/trunk/engines/drascula/drascula.cpp 2011-01-27 14:07:45 UTC (rev 55566)
@@ -1041,25 +1041,22 @@
for (int lang = 0; lang < _numLangs; lang++) {
entryLen = in.readUint16BE();
- pos = (char *)malloc(entryLen);
if (lang == _lang) {
- res[0] = pos;
- in.read(res[0], entryLen);
- } else {
+ pos = (char *)malloc(entryLen);
in.read(pos, entryLen);
- }
+ res[0] = pos;
+ pos += DATAALIGNMENT;
- pos += DATAALIGNMENT;
+ for (int i = 1; i < numTexts; i++) {
+ pos -= 2;
- for (int i = 1; i < numTexts; i++) {
- pos -= 2;
+ len = READ_BE_UINT16(pos);
+ pos += 2 + len;
- len = READ_BE_UINT16(pos);
- pos += 2 + len;
-
- if (lang == _lang)
res[i] = pos;
- }
+ }
+ } else
+ in.seek(entryLen, SEEK_CUR);
}
return res;
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