From dedb63532bd708298a9bada148e04eb9091ae018 Mon Sep 17 00:00:00 2001 From: "Unknown W. Brackets" Date: Fri, 12 Aug 2022 22:41:30 -0700 Subject: [PATCH] Headless: Correct bad pointer without gfx context. --- headless/SDLHeadlessHost.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/headless/SDLHeadlessHost.cpp b/headless/SDLHeadlessHost.cpp index 4e7b76d135..af6fc4a994 100644 --- a/headless/SDLHeadlessHost.cpp +++ b/headless/SDLHeadlessHost.cpp @@ -80,8 +80,10 @@ public: } void StopThread() override { - renderManager_->WaitUntilQueueIdle(); - renderManager_->StopThread(); + if (renderManager_) { + renderManager_->WaitUntilQueueIdle(); + renderManager_->StopThread(); + } } void Shutdown() override {} @@ -90,7 +92,7 @@ public: void SwapBuffers() override {} private: - Draw::DrawContext *draw_; + Draw::DrawContext *draw_ = nullptr; GLRenderManager *renderManager_ = nullptr; SDL_Window *screen_; SDL_GLContext glContext_; @@ -201,7 +203,7 @@ bool SDLHeadlessHost::InitGraphics(std::string *error_message, GraphicsContext * void SDLHeadlessHost::ShutdownGraphics() { gfx_->StopThread(); - while (threadState_ != RenderThreadState::STOPPED) + while (threadState_ != RenderThreadState::STOPPED && threadState_ != RenderThreadState::START_FAILED) sleep_ms(1); gfx_->Shutdown();