Browse Source

bootmanager: Delete container to avoid crash on game restarting

While we are at it, remove nullptr checks for deletion, since the C++
standard defines that delete does it by its own
nce_cpp
ReinUsesLisp 7 years ago
parent
commit
31ce76cc6c
  1. 21
      src/yuzu/bootmanager.cpp
  2. 3
      src/yuzu/bootmanager.h

21
src/yuzu/bootmanager.cpp

@ -340,21 +340,16 @@ std::unique_ptr<Core::Frontend::GraphicsContext> GRenderWindow::CreateSharedCont
}
void GRenderWindow::InitRenderTarget() {
if (shared_context) {
shared_context.reset();
}
shared_context.reset();
context.reset();
if (context) {
context.reset();
}
delete child;
child = nullptr;
if (child) {
delete child;
}
delete container;
container = nullptr;
if (layout()) {
delete layout();
}
delete layout();
first_frame = false;
@ -375,7 +370,7 @@ void GRenderWindow::InitRenderTarget() {
fmt.setSwapInterval(false);
child = new GGLWidgetInternal(this, shared_context.get());
QWidget* container = QWidget::createWindowContainer(child, this);
container = QWidget::createWindowContainer(child, this);
QBoxLayout* layout = new QHBoxLayout(this);
resize(Layout::ScreenUndocked::Width, Layout::ScreenUndocked::Height);

3
src/yuzu/bootmanager.h

@ -166,7 +166,8 @@ private:
void OnMinimalClientAreaChangeRequest(
const std::pair<unsigned, unsigned>& minimal_size) override;
GGLWidgetInternal* child;
QWidget* container = nullptr;
GGLWidgetInternal* child = nullptr;
QByteArray geometry;

Loading…
Cancel
Save