From f2d582f680b72eb50480e7c704f90b9bd38c7529 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 1 May 2024 09:49:45 +0200 Subject: [PATCH] fixed: The savegame's PNG loader must use a caching FileReader to avoid holding a handle to the containing file. This blocked savegame deletion. --- src/common/menu/savegamemanager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/menu/savegamemanager.cpp b/src/common/menu/savegamemanager.cpp index 06b014122..135093021 100644 --- a/src/common/menu/savegamemanager.cpp +++ b/src/common/menu/savegamemanager.cpp @@ -316,7 +316,8 @@ unsigned FSavegameManagerBase::ExtractSaveData(int index) auto pic = resf->FindEntry("savepic.png"); if (pic >= 0) { - FileReader picreader = resf->GetEntryReader(pic, FileSys::READER_NEW, FileSys::READERFLAG_SEEKABLE); + // This must use READER_CACHED or it will lock the savegame file. + FileReader picreader = resf->GetEntryReader(pic, FileSys::READER_CACHED, FileSys::READERFLAG_SEEKABLE); PNGHandle *png = M_VerifyPNG(picreader); if (png != nullptr) {