diff options
Diffstat (limited to 'engines/mads/detection.cpp')
-rw-r--r-- | engines/mads/detection.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/engines/mads/detection.cpp b/engines/mads/detection.cpp index 4fb8b82eb3..8eb3b4eee9 100644 --- a/engines/mads/detection.cpp +++ b/engines/mads/detection.cpp @@ -203,11 +203,8 @@ SaveStateList MADSMetaEngine::listSaves(const char *target) const { Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(*file); if (in) { - MADS::Game::readSavegameHeader(in, header); - saveList.push_back(SaveStateDescriptor(slot, header._saveName)); - - header._thumbnail->free(); - delete header._thumbnail; + if (MADS::Game::readSavegameHeader(in, header)) + saveList.push_back(SaveStateDescriptor(slot, header._saveName)); delete in; } } @@ -233,7 +230,10 @@ SaveStateDescriptor MADSMetaEngine::querySaveMetaInfos(const char *target, int s if (f) { MADS::MADSSavegameHeader header; - MADS::Game::readSavegameHeader(f, header); + if (!MADS::Game::readSavegameHeader(f, header, false)) { + delete f; + return SaveStateDescriptor(); + } delete f; // Create the return descriptor |