From 667d6108b889e6e4c73cc120786c943d99f42a97 Mon Sep 17 00:00:00 2001 From: Moulberry Date: Sat, 4 Feb 2023 01:11:47 +0800 Subject: [PATCH] [API] Fix nHasDragDropPayload SIGSEGV when payload doesn't exist (#155) `getDragDropPayload()` functions should simply return null when the payload doesn't exist. Currently, DearImGui will return NULL from `ImGui::GetDragDropPayload()` when the payload does not exist. This causes a null dereference since the nHasDragDropPayload function performs no NULL check --- imgui-binding/src/main/java/imgui/ImGui.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/imgui-binding/src/main/java/imgui/ImGui.java b/imgui-binding/src/main/java/imgui/ImGui.java index 4f3aa24..05dacda 100644 --- a/imgui-binding/src/main/java/imgui/ImGui.java +++ b/imgui-binding/src/main/java/imgui/ImGui.java @@ -5118,11 +5118,13 @@ public class ImGui { } private static native boolean nHasDragDropPayload(); /* - return ImGui::GetDragDropPayload()->Data != NULL; + const ImGuiPayload* payload = ImGui::GetDragDropPayload(); + return payload != NULL && payload->Data != NULL; */ private static native boolean nHasDragDropPayload(String dataType); /* - return ImGui::GetDragDropPayload()->IsDataType(dataType); + const ImGuiPayload* payload = ImGui::GetDragDropPayload(); + return payload != NULL && payload->IsDataType(dataType); */ /**