diff options
author | D G Turner | 2012-03-28 00:10:56 +0100 |
---|---|---|
committer | D G Turner | 2012-03-28 00:10:56 +0100 |
commit | 83d4eeadc63d40a465ca9713194505440253d398 (patch) | |
tree | ee9c3ef27f99e194bd6df3fbebf3b6423a907351 | |
parent | b81b36855cdd2319467b42bea1637234007fb406 (diff) | |
download | scummvm-rg350-83d4eeadc63d40a465ca9713194505440253d398.tar.gz scummvm-rg350-83d4eeadc63d40a465ca9713194505440253d398.tar.bz2 scummvm-rg350-83d4eeadc63d40a465ca9713194505440253d398.zip |
CGE: Close memory leak in savegame thumbnail loading.
-rw-r--r-- | engines/cge/cge_main.cpp | 5 | ||||
-rw-r--r-- | engines/cge/detection.cpp | 5 |
2 files changed, 5 insertions, 5 deletions
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp index fd7dd85c57..27bc47b651 100644 --- a/engines/cge/cge_main.cpp +++ b/engines/cge/cge_main.cpp @@ -430,11 +430,8 @@ bool CGEEngine::readSavegameHeader(Common::InSaveFile *in, SavegameHeader &heade // Get the thumbnail header.thumbnail = Graphics::loadThumbnail(*in); - if (!header.thumbnail) { - delete header.thumbnail; - header.thumbnail = NULL; + if (!header.thumbnail) return false; - } // Read in save date/time header.saveYear = in->readSint16LE(); diff --git a/engines/cge/detection.cpp b/engines/cge/detection.cpp index b3ef31f30f..f723ec8fbd 100644 --- a/engines/cge/detection.cpp +++ b/engines/cge/detection.cpp @@ -177,7 +177,10 @@ SaveStateList CGEMetaEngine::listSaves(const char *target) const { // Valid savegame if (CGE::CGEEngine::readSavegameHeader(file, header)) { saveList.push_back(SaveStateDescriptor(slotNum, header.saveName)); - delete header.thumbnail; + if (header.thumbnail) { + header.thumbnail->free(); + delete header.thumbnail; + } } } else { // Must be an original format savegame |