Browse Source

Backends: avoid null dereference in metal and osx shutdown (#6385, #6334)

Co-authored-by: Alexander Rath <alex@ist.besonders.cool>
pull/6409/head
Alex 2 years ago
committed by GitHub
parent
commit
70cca1eac0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      backends/imgui_impl_metal.mm
  2. 5
      backends/imgui_impl_osx.mm

5
backends/imgui_impl_metal.mm

@ -137,12 +137,13 @@ void ImGui_ImplMetal_Shutdown()
{
ImGui_ImplMetal_Data* bd = ImGui_ImplMetal_GetBackendData();
IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?");
ImGui_ImplMetal_DestroyDeviceObjects();
ImGui_ImplMetal_DestroyBackendData();
ImGuiIO& io = ImGui::GetIO();
io.BackendRendererName = nullptr;
io.BackendRendererUserData = nullptr;
io.BackendFlags &= ~ImGuiBackendFlags_RendererHasVtxOffset;
ImGui_ImplMetal_DestroyDeviceObjects();
ImGui_ImplMetal_DestroyBackendData();
}
void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor)

5
backends/imgui_impl_osx.mm

@ -477,7 +477,6 @@ void ImGui_ImplOSX_Shutdown()
{
ImGui_ImplOSX_Data* bd = ImGui_ImplOSX_GetBackendData();
IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?");
ImGuiIO& io = ImGui::GetIO();
bd->Observer = nullptr;
if (bd->Monitor != nullptr)
@ -486,10 +485,12 @@ void ImGui_ImplOSX_Shutdown()
bd->Monitor = nullptr;
}
ImGui_ImplOSX_DestroyBackendData();
ImGuiIO& io = ImGui::GetIO();
io.BackendPlatformName = nullptr;
io.BackendPlatformUserData = nullptr;
io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_HasGamepad);
ImGui_ImplOSX_DestroyBackendData();
}
static void ImGui_ImplOSX_UpdateMouseCursor()

Loading…
Cancel
Save