diff options
Diffstat (limited to 'engines/xeen/detection.cpp')
-rw-r--r-- | engines/xeen/detection.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/engines/xeen/detection.cpp b/engines/xeen/detection.cpp index 49b74b24a2..abf82188a9 100644 --- a/engines/xeen/detection.cpp +++ b/engines/xeen/detection.cpp @@ -170,12 +170,9 @@ SaveStateList XeenMetaEngine::listSaves(const char *target) const { Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(*file); if (in) { - Xeen::SavesManager::readSavegameHeader(in, header); - saveList.push_back(SaveStateDescriptor(slot, header._saveName)); + if (Xeen::SavesManager::readSavegameHeader(in, header)) + saveList.push_back(SaveStateDescriptor(slot, header._saveName)); - if (header._thumbnail) - header._thumbnail->free(); - delete header._thumbnail; delete in; } } @@ -200,7 +197,11 @@ SaveStateDescriptor XeenMetaEngine::querySaveMetaInfos(const char *target, int s if (f) { Xeen::XeenSavegameHeader header; - Xeen::SavesManager::readSavegameHeader(f, header); + if (!Xeen::SavesManager::readSavegameHeader(f, header, false)) { + delete f; + return SaveStateDescriptor(); + } + delete f; // Create the return descriptor |