From f4fbe90a727be29808e844e1980b892fc90f4dd3 Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Mon, 15 Sep 2025 03:18:51 -0700 Subject: [PATCH] Fix segfault when creating token of opponent's card (#6144) * Fix segfault when creating token of opponent's card * clean up code --- cockatrice/src/game/player/player_actions.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cockatrice/src/game/player/player_actions.cpp b/cockatrice/src/game/player/player_actions.cpp index 2f1badfea..c98e6eda4 100644 --- a/cockatrice/src/game/player/player_actions.cpp +++ b/cockatrice/src/game/player/player_actions.cpp @@ -878,7 +878,12 @@ void PlayerActions::actCreateAnotherToken() void PlayerActions::setLastToken(CardInfoPtr cardInfo) { - if (cardInfo == nullptr || !player->getPlayerMenu()->getUtilityMenu()->createAnotherTokenActionExists()) { + if (cardInfo == nullptr) { + return; + } + + UtilityMenu *utilityMenu = player->getPlayerMenu()->getUtilityMenu(); + if (utilityMenu == nullptr || !utilityMenu->createAnotherTokenActionExists()) { return; } @@ -892,8 +897,7 @@ void PlayerActions::setLastToken(CardInfoPtr cardInfo) lastTokenTableRow = TableZone::clampValidTableRow(2 - cardInfo->getTableRow()); - player->getPlayerMenu()->getUtilityMenu()->setAndEnableCreateAnotherTokenAction( - tr("C&reate another %1 token").arg(lastTokenInfo.name)); + utilityMenu->setAndEnableCreateAnotherTokenAction(tr("C&reate another %1 token").arg(lastTokenInfo.name)); } void PlayerActions::actCreatePredefinedToken()