From 5b17ad11a74c1c350363c8b7638182b345dd1890 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Thu, 10 Sep 2020 00:23:24 +1000 Subject: [PATCH] GameList: Fix cache corruption after scanning for new games --- src/frontend-common/game_list.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/frontend-common/game_list.cpp b/src/frontend-common/game_list.cpp index 58db28b40..0cd9c88f7 100644 --- a/src/frontend-common/game_list.cpp +++ b/src/frontend-common/game_list.cpp @@ -367,8 +367,11 @@ bool GameList::OpenCacheForWriting() m_cache_write_stream = FileSystem::OpenFile(m_cache_filename.c_str(), BYTESTREAM_OPEN_CREATE | BYTESTREAM_OPEN_WRITE | BYTESTREAM_OPEN_APPEND | BYTESTREAM_OPEN_STREAMED); - if (!m_cache_write_stream) + if (!m_cache_write_stream || !m_cache_write_stream->SeekToEnd()) + { + m_cache_write_stream.reset(); return false; + } if (m_cache_write_stream->GetPosition() == 0) { @@ -516,8 +519,6 @@ void GameList::ScanDirectory(const char* path, bool recursive, ProgressCallback* entry = {}; } - FlushCacheFileStream(); - progress->SetProgressValue(static_cast(files.size())); progress->PopState(); }