aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorD G Turner2012-03-28 00:10:56 +0100
committerD G Turner2012-03-28 00:10:56 +0100
commit83d4eeadc63d40a465ca9713194505440253d398 (patch)
treeee9c3ef27f99e194bd6df3fbebf3b6423a907351
parentb81b36855cdd2319467b42bea1637234007fb406 (diff)
downloadscummvm-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.cpp5
-rw-r--r--engines/cge/detection.cpp5
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