From b5b37954b31dfd1b467362d6172b6d5ae32299af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 22 Oct 2026 08:57:29 +0200 Subject: [PATCH] Achievements: Don't crash recreating a leaderboard screen after the game is unloaded Co-Authored-By: Claude Opus 5.5 (1M context) --- UI/RetroAchievementScreens.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/UI/RetroAchievementScreens.cpp b/UI/RetroAchievementScreens.cpp index 35b7aa5db4..f8d91817db 100644 --- a/UI/RetroAchievementScreens.cpp +++ b/UI/RetroAchievementScreens.cpp @@ -290,6 +290,11 @@ void RetroAchievementsLeaderboardScreen::FetchEntries() { void RetroAchievementsLeaderboardScreen::CreateTabs() { auto ac = GetI18NCategory(I18NCat::ACHIEVEMENTS); const rc_client_leaderboard_t *leaderboard = rc_client_get_leaderboard_info(Achievements::GetClient(), leaderboardID_); + if (!leaderboard) { + // The game was unloaded. There has to be a tab, though. + AddTab("AchievementsLeaderboard", "", [](UI::LinearLayout *parent) {}); + return; + } using namespace UI; AddTab("AchievementsLeaderboard", leaderboard->title, [this, leaderboard](UI::LinearLayout *parent) {