DolphinQt2: Don't show invalid games in game list

Regression from 1f1dae3.

This problem doesn't happen in DolphinWX as far as I know, but if
you've ran into the problem in DolphinQt2, it will carry over to
DolphinWX because of the shared game list cache.
This commit is contained in:
JosJuice
2018-03-29 21:52:21 +02:00
parent d3f432946f
commit ff2fe73ec9
3 changed files with 11 additions and 3 deletions

View File

@ -28,7 +28,7 @@
namespace UICommon
{
static constexpr u32 CACHE_REVISION = 7; // Last changed in PR 6281
static constexpr u32 CACHE_REVISION = 8; // Last changed in PR 6560
std::vector<std::string> FindAllGamePaths(const std::vector<std::string>& directories_to_scan,
bool recursive_scan)
@ -60,7 +60,12 @@ std::shared_ptr<const GameFile> GameFileCache::AddOrGet(const std::string& path,
[&path](const std::shared_ptr<GameFile>& file) { return file->GetFilePath() == path; });
const bool found = it != m_cached_files.cend();
if (!found)
m_cached_files.emplace_back(std::make_shared<GameFile>(path));
{
std::shared_ptr<UICommon::GameFile> game = std::make_shared<GameFile>(path);
if (!game->IsValid())
return nullptr;
m_cached_files.emplace_back(std::move(game));
}
std::shared_ptr<GameFile>& result = found ? *it : m_cached_files.back();
if (UpdateAdditionalMetadata(&result, title_database) || !found)
*cache_changed = true;