From 2002bb4e16e53bd48eabc46f36406bded52ddd3f Mon Sep 17 00:00:00 2001 From: Tobias Loose Date: Fri, 6 Dec 2013 20:13:30 +0100 Subject: [PATCH] Fix crash that occured when opening the editor a second time --- projects/mtg/include/GameStateDeckViewer.h | 2 +- projects/mtg/src/GameStateDeckViewer.cpp | 17 ++++------------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/projects/mtg/include/GameStateDeckViewer.h b/projects/mtg/include/GameStateDeckViewer.h index a636ff6f7..0a617dcc0 100644 --- a/projects/mtg/include/GameStateDeckViewer.h +++ b/projects/mtg/include/GameStateDeckViewer.h @@ -105,7 +105,7 @@ private: void setButtonState(bool state); bool userPressedButton(); void RenderButtons(); - void setupView(AvailableView view); + void setupView(AvailableView view, DeckDataWrapper *deck); void toggleView(); public: GameStateDeckViewer(GameApp* parent); diff --git a/projects/mtg/src/GameStateDeckViewer.cpp b/projects/mtg/src/GameStateDeckViewer.cpp index d66509c66..f42248675 100644 --- a/projects/mtg/src/GameStateDeckViewer.cpp +++ b/projects/mtg/src/GameStateDeckViewer.cpp @@ -172,8 +172,7 @@ void GameStateDeckViewer::Start() playerdata = NEW PlayerData(MTGCollection()); myCollection = NEW DeckDataWrapper(playerdata->collection); myCollection->Sort(WSrcCards::SORT_ALPHA); - - setupView(mCurrentView); + setupView(mCurrentView, myCollection); //Icons mIcons = manaIcons; @@ -338,21 +337,14 @@ void GameStateDeckViewer::RenderButtons() toggleViewButton->Render(); } -void GameStateDeckViewer::setupView(GameStateDeckViewer::AvailableView view) +void GameStateDeckViewer::setupView(GameStateDeckViewer::AvailableView view, DeckDataWrapper *deck) { - DeckDataWrapper *wrapper = myCollection; - - if(mView) - { - wrapper = mView->deck(); - } - SAFE_DELETE(mView); if(view == CAROUSEL_VIEW) mView = NEW CarouselDeckView(); else if(view == GRID_VIEW) mView = NEW GridDeckView(); - mView->SetDeck(wrapper); + mView->SetDeck(deck); updateFilters(); } @@ -368,8 +360,7 @@ void GameStateDeckViewer::toggleView() mCurrentView = CAROUSEL_VIEW; toggleViewButton->setText("Grid"); } - - setupView(mCurrentView); + setupView(mCurrentView, mView->deck()); } void GameStateDeckViewer::Update(float dt)