From bccecdbf1864761364c4ae588f01c67bcbf2aa32 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Tue, 1 Dec 2020 01:17:26 +1000 Subject: [PATCH] Qt: Fix crash with Vulkan renderer when unsupported --- src/duckstation-qt/mainwindow.cpp | 5 +++-- src/duckstation-qt/qthostinterface.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index fbddf5f3b..015169945 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -129,7 +129,6 @@ QtDisplayWidget* MainWindow::createDisplay(QThread* worker_thread, const QString { reportError(QStringLiteral("Failed to get window info from widget")); destroyDisplayWidget(); - delete m_host_display; m_host_display = nullptr; return nullptr; } @@ -138,7 +137,6 @@ QtDisplayWidget* MainWindow::createDisplay(QThread* worker_thread, const QString { reportError(tr("Failed to create host display device context.")); destroyDisplayWidget(); - delete m_host_display; m_host_display = nullptr; return nullptr; } @@ -245,6 +243,9 @@ void MainWindow::displaySizeRequested(qint32 width, qint32 height) void MainWindow::destroyDisplay() { + if (!m_host_display) + return; + DebugAssert(m_host_display && m_display_widget); m_host_display = nullptr; destroyDisplayWidget(); diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp index 501505b3f..73ce25d19 100644 --- a/src/duckstation-qt/qthostinterface.cpp +++ b/src/duckstation-qt/qthostinterface.cpp @@ -486,7 +486,7 @@ bool QtHostInterface::AcquireHostDisplay() if (!display_widget || !m_display->HasRenderDevice()) { emit destroyDisplayRequested(); - m_display = nullptr; + m_display.reset(); return false; }