Skip to content

Commit

Permalink
FULLPIPE: Delete temporary memory streams used with MfcArchive
Browse files Browse the repository at this point in the history
  • Loading branch information
bluegr committed Dec 20, 2016
1 parent 907bab8 commit 8a16f9d
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions engines/fullpipe/stateloader.cpp
Expand Up @@ -69,18 +69,21 @@ bool GameLoader::readSavegame(const char *fname) {
byte *map = (byte *)malloc(800);
saveFile->read(map, 800);

MfcArchive temp(new Common::MemoryReadStream(map, 800));
Common::MemoryReadStream *tempStream = new Common::MemoryReadStream(map, 800);
MfcArchive temp(tempStream);

if (_savegameCallback)
_savegameCallback(&temp, false);

delete tempStream;
delete saveFile;

// Deobfuscate the data
for (int i = 0; i < header.encSize; i++)
data[i] -= i & 0x7f;

MfcArchive *archive = new MfcArchive(new Common::MemoryReadStream(data, header.encSize));
Common::MemoryReadStream *archiveStream = new Common::MemoryReadStream(data, header.encSize);
MfcArchive *archive = new MfcArchive(archiveStream);

GameVar *var = (GameVar *)archive->readClass();

Expand All @@ -91,6 +94,7 @@ bool GameLoader::readSavegame(const char *fname) {

if (!v) {
warning("No state to save");
delete archiveStream;
delete archive;
return false;
}
Expand Down Expand Up @@ -121,6 +125,7 @@ bool GameLoader::readSavegame(const char *fname) {
_sc2array[i]._isLoaded = 0;
}

delete archiveStream;
delete archive;

getGameLoaderInventory()->rebuildItemRects();
Expand Down

0 comments on commit 8a16f9d

Please sign in to comment.