-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
When using the callback data for an inputText, I get a segfault. Is there something I'm doing wrong, or is this an issue with zgui?
Reproduction on zig-gamedev main:
diff --git a/samples/gui_test_wgpu/src/gui_test_wgpu.zig b/samples/gui_test_wgpu/src/gui_test_wgpu.zig
index 58924f4a..02456774 100644
--- a/samples/gui_test_wgpu/src/gui_test_wgpu.zig
+++ b/samples/gui_test_wgpu/src/gui_test_wgpu.zig
@@ -503,7 +503,16 @@ fn update(demo: *DemoState) !void {
var v3u8: [3]u8 = .{ 0, 0, 0 };
};
zgui.separatorText("static input text");
- _ = zgui.inputText("Input text", .{ .buf = static.input_text_buf[0..] });
+ _ = zgui.inputText("Input text", .{
+ .buf = static.input_text_buf[0..],
+ .flags = .{ .callback_edit = true },
+ .callback = struct {
+ fn edit(data: *zgui.InputTextCallbackData) i32 {
+ std.debug.print("buf_text_len: {d}\n", .{data.buf_text_len});
+ return 0;
+ }
+ }.edit,
+ });
_ = zgui.text("length of Input text {}", .{std.mem.len(@as([*:0]u8, static.input_text_buf[0..]))});
_ = zgui.inputTextMultiline("Input text multiline", .{ .buf = static.input_text_multiline_buf[0..] });
zig build run gui_test_wgpu-run
Type a character into the first static input text, and get a segfault
Segmentation fault at address 0x2a
zig-gamedev/samples/gui_test_wgpu/src/gui_test_wgpu.zig:511:70: 0x14b3e39 in edit (gui_test_wgpu)
std.debug.print("buf_text_len: {d}\n", .{data.buf_text_len});
^
.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/libs/imgui/imgui_widgets.cpp:5124:13: 0x1d52ef4 in InputTextEx (.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/libs/imgui/imgui_widgets.cpp)
callback(&callback_data);
^
.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/libs/imgui/imgui_widgets.cpp:3862:12: 0x1d54d1e in InputText (.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/libs/imgui/imgui_widgets.cpp)
return InputTextEx(label, NULL, buf, (int)buf_size, ImVec2(0, 0), flags, callback, user_data);
^
.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/src/zgui.cpp:866:16: 0x1cb254a in zguiInputText (.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/src/zgui.cpp)
return ImGui::InputText(label, buf, buf_size, flags, callback, user_data);
^
.cache/zig/p/zgui-0.6.0-dev--L6sZC-1aADzgrip50BHiYDaCwSMC04XWK0epNlQD6Dt/src/gui.zig:2559:25: 0x14b3dfb in inputText (gui_test_wgpu)
return zguiInputText(
^
zig-gamedev/samples/gui_test_wgpu/src/gui_test_wgpu.zig:506:31: 0x14b1288 in update (gui_test_wgpu)
_ = zgui.inputText("Input text", .{
^
zig-gamedev/samples/gui_test_wgpu/src/gui_test_wgpu.zig:796:19: 0x14b5945 in main (gui_test_wgpu)
try update(demo);
^
zig/0.14.0/files/lib/std/start.zig:656:37: 0x14b63d7 in main (gui_test_wgpu)
const result = root.main() catch |err| {
^
../sysdeps/nptl/libc_start_call_main.h:58:16: 0x76c3cc82a1c9 in __libc_start_call_main (../sysdeps/x86/libc-start.c)
../csu/libc-start.c:360:3: 0x76c3cc82a28a in __libc_start_main_impl (../sysdeps/x86/libc-start.c)
???:?:?: 0x13d5bd4 in ??? (???)
???:?:?: 0x0 in ??? (???)
gui_test_wgpu-run
└─ run gui_test_wgpu failure
error: the following command terminated unexpectedly:
zig-gamedev/zig-out/bin/gui_test_wgpu
Build Summary: 14/16 steps succeeded; 1 failed
gui_test_wgpu-run transitive failure
└─ run gui_test_wgpu failure
error: the following build command failed with exit code 1:
zig-gamedev/.zig-cache/o/3cde12cdd311d20a470adddfa5ac3696/build zig/0.14.0/files/zig zig/0.14.0/files/lib zig-gamedev zig-gamedev/.zig-cache .cache/zig --seed 0x2202d625 -Z084a7f95a9cb44b5 gui_test_wgpu-run
Metadata
Metadata
Assignees
Labels
No labels