diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.cpp b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.cpp index e183ee5459..a0edc05e9b 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.cpp +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.cpp @@ -6,11 +6,15 @@ namespace rsx::overlays::home_menu { std::unordered_map> g_icons_cache; + std::mutex g_icons_cache_lock; static const char* fa_icon_to_filename(fa_icon icon) { switch (icon) { + default: + case fa_icon::none: + return ""; case fa_icon::home: return "home.png"; case fa_icon::settings: @@ -47,6 +51,13 @@ namespace rsx::overlays::home_menu const image_info* get_icon(fa_icon icon) { + if (icon == fa_icon::none) + { + return nullptr; + } + + std::lock_guard lock(g_icons_cache_lock); + auto found = g_icons_cache.find(icon); if (found != g_icons_cache.end()) { diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.h b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.h index b173c87170..98d8abe748 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.h +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_icons.h @@ -7,7 +7,8 @@ namespace rsx::overlays::home_menu { enum class fa_icon { - home = 0, + none = 0, + home, settings, back, floppy,