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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
6 additions and
4 deletions
-
backends/imgui_impl_metal.mm
-
backends/imgui_impl_osx.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) |
|
|
|
|
|
@ -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() |
|
|
|