diff --git a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp index 0efb0d10b..be402a9ce 100644 --- a/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp +++ b/cockatrice/src/client/tabs/abstract_tab_deck_editor.cpp @@ -292,12 +292,13 @@ void AbstractTabDeckEditor::openDeckFromFile(const QString &fileName, DeckOpenLo SettingsCache::instance().recents().updateRecentlyOpenedDeckPaths(fileName); if (deckOpenLocation == NEW_TAB) { emit openDeckEditor(l); + l->deleteLater(); } else { deckMenu->setSaveStatus(false); setDeck(l); } } else { - delete l; + l->deleteLater(); QMessageBox::critical(this, tr("Error"), tr("Could not open deck at %1").arg(fileName)); } deckMenu->setSaveStatus(true); diff --git a/cockatrice/src/dialogs/dlg_load_deck_from_clipboard.cpp b/cockatrice/src/dialogs/dlg_load_deck_from_clipboard.cpp index e5e5b5951..47c1af242 100644 --- a/cockatrice/src/dialogs/dlg_load_deck_from_clipboard.cpp +++ b/cockatrice/src/dialogs/dlg_load_deck_from_clipboard.cpp @@ -63,13 +63,14 @@ void DlgLoadDeckFromClipboard::actOK() QTextStream stream(&buffer); auto *deckLoader = new DeckLoader; + deckLoader->setParent(this); + if (buffer.contains("")) { if (deckLoader->loadFromString_Native(buffer)) { deckList = deckLoader; accept(); } else { QMessageBox::critical(this, tr("Error"), tr("Invalid deck list.")); - delete deckLoader; } } else if (deckLoader->loadFromStream_Plain(stream)) { deckList = deckLoader; @@ -81,7 +82,6 @@ void DlgLoadDeckFromClipboard::actOK() accept(); } else { QMessageBox::critical(this, tr("Error"), tr("Invalid deck list.")); - delete deckLoader; } }