From 8c0093d4534b7cb47208dd461c90cb0cb9743765 Mon Sep 17 00:00:00 2001 From: ryder052 Date: Thu, 2 Jan 2025 01:25:04 +0100 Subject: [PATCH] Crashfix for opening Deck editor (#5403) * CardDatabase::getCards() no longer copies the whole database --------- Co-authored-by: Jakub Mrowinski --- cockatrice/src/dialogs/dlg_move_top_cards_until.cpp | 4 ++-- cockatrice/src/game/cards/card_database.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cockatrice/src/dialogs/dlg_move_top_cards_until.cpp b/cockatrice/src/dialogs/dlg_move_top_cards_until.cpp index f93cbfe9d..4f0207155 100644 --- a/cockatrice/src/dialogs/dlg_move_top_cards_until.cpp +++ b/cockatrice/src/dialogs/dlg_move_top_cards_until.cpp @@ -59,8 +59,8 @@ DlgMoveTopCardsUntil::DlgMoveTopCardsUntil(QWidget *parent, QString _expr, uint */ static bool matchExistsInDb(const FilterString &filterString) { - const auto cardDatabase = CardDatabaseManager::getInstance(); - const auto allCards = cardDatabase->getCardList(); + const auto *cardDatabase = CardDatabaseManager::getInstance(); + const auto &allCards = cardDatabase->getCardList(); const auto it = std::find_if(allCards.begin(), allCards.end(), [&filterString](const CardInfoPtr &card) { return filterString.check(card); }); diff --git a/cockatrice/src/game/cards/card_database.h b/cockatrice/src/game/cards/card_database.h index 0962bd350..83ea647d3 100644 --- a/cockatrice/src/game/cards/card_database.h +++ b/cockatrice/src/game/cards/card_database.h @@ -477,9 +477,9 @@ public: CardSetPtr getSet(const QString &setName); bool isProviderIdForPreferredPrinting(const QString &cardName, const QString &providerId); static CardInfoPerSet getSetInfoForCard(const CardInfoPtr &_card); - QList getCardList() const + const CardNameMap &getCardList() const { - return cards.values(); + return cards; } SetList getSetList() const; LoadStatus loadFromFile(const QString &fileName);