summaryrefslogtreecommitdiff
path: root/Source/Core/UICommon/GameFileCache.cpp
diff options
context:
space:
mode:
authorLioncash <mai.iam2048@gmail.com>2023-12-11 11:04:26 -0500
committerLioncash <mai.iam2048@gmail.com>2023-12-11 11:09:18 -0500
commit2ca80adeb223bec7f7ce266d4c37d9e733a50899 (patch)
tree8b2f8d7a8e4df1f10f8ed9f9aa1c23cb6e5e9e98 /Source/Core/UICommon/GameFileCache.cpp
parentd84ed054ee7fcaa9f9d1abbd5db0f10aed659092 (diff)
GameFileCache: Pass std::function by reference rather than by value
std::function is internally allowed to allocate, and these functions aren't being stored anywhere (only called), so we can freely get rid of some minor overhead here by passing by reference. This change also creates aliases for the functions, so that there isn't a lot of visual noise when reading the function signatures.
Diffstat (limited to 'Source/Core/UICommon/GameFileCache.cpp')
-rw-r--r--Source/Core/UICommon/GameFileCache.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/Source/Core/UICommon/GameFileCache.cpp b/Source/Core/UICommon/GameFileCache.cpp
index d9b08f63d5..1435154941 100644
--- a/Source/Core/UICommon/GameFileCache.cpp
+++ b/Source/Core/UICommon/GameFileCache.cpp
@@ -43,7 +43,7 @@ GameFileCache::GameFileCache() : m_path(File::GetUserPath(D_CACHE_IDX) + "gameli
{
}
-void GameFileCache::ForEach(std::function<void(const std::shared_ptr<const GameFile>&)> f) const
+void GameFileCache::ForEach(const ForEachFn& f) const
{
for (const std::shared_ptr<GameFile>& item : m_cached_files)
f(item);
@@ -83,11 +83,10 @@ std::shared_ptr<const GameFile> GameFileCache::AddOrGet(const std::string& path,
return result;
}
-bool GameFileCache::Update(
- const std::vector<std::string>& all_game_paths,
- std::function<void(const std::shared_ptr<const GameFile>&)> game_added_to_cache,
- std::function<void(const std::string&)> game_removed_from_cache,
- const std::atomic_bool& processing_halted)
+bool GameFileCache::Update(const std::vector<std::string>& all_game_paths,
+ const GameAddedToCacheFn& game_added_to_cache,
+ const GameRemovedFromCacheFn& game_removed_from_cache,
+ const std::atomic_bool& processing_halted)
{
// Copy game paths into a set, except ones that match DiscIO::ShouldHideFromGameList.
// TODO: Prevent DoFileSearch from looking inside /files/ directories of DirectoryBlobs at all?
@@ -151,9 +150,8 @@ bool GameFileCache::Update(
return cache_changed;
}
-bool GameFileCache::UpdateAdditionalMetadata(
- std::function<void(const std::shared_ptr<const GameFile>&)> game_updated,
- const std::atomic_bool& processing_halted)
+bool GameFileCache::UpdateAdditionalMetadata(const GameUpdatedFn& game_updated,
+ const std::atomic_bool& processing_halted)
{
bool cache_changed = false;