From d66444368d485666ba4dd513490c3d17e7a0d950 Mon Sep 17 00:00:00 2001 From: Damian Wrobel Date: Thu, 28 Nov 2019 10:47:58 +0100 Subject: [PATCH] Fix crash on BCM platform Program received signal SIGSEGV, Segmentation fault. xkb_context_ref (ctx=ctx@entry=0x0) at /usr/src/debug/libxkbcommon/0.5.0-r0/libxkbcommon-0.5.0/src/context.c:152 152 ctx->refcnt++; (gdb) bt #0 xkb_context_ref (ctx=ctx@entry=0x0) at /usr/src/debug/libxkbcommon/0.5.0-r0/libxkbcommon-0.5.0/src/context.c:152 #1 0xb660efb8 in xkb_keymap_new (ctx=0x0, format=format@entry=XKB_KEYMAP_FORMAT_TEXT_V1, flags=XKB_KEYMAP_COMPILE_NO_FLAGS) at /usr/src/debug/libxkbcommon/0.5.0-r0/libxkbcommon-0.5.0/src/keymap-priv.c:65 #2 0xb660ec42 in xkb_keymap_new_from_buffer (ctx=ctx@entry=0x0, buffer=buffer@entry=0xb605c000 "xkb_keymap {\nxkb_keycodes \"evdev-onemw_aliases(qwerty)\" {\n\tminimum = 8;\n\tmaximum = 446;\n\t", ' ' , "= 9;\n\t", ' ' , "= 10;\n\t", ' ' , "= 11;\n\t", ' ' , "= 12;\n\t"..., length=48673, format=format@entry=XKB_KEYMAP_FORMAT_TEXT_V1, flags=flags@entry=XKB_KEYMAP_COMPILE_NO_FLAGS) at /usr/src/debug/libxkbcommon/0.5.0-r0/libxkbcommon-0.5.0/src/keymap.c:191 #3 0xb660eca2 in xkb_keymap_new_from_string (ctx=0x0, string=0xb605c000 "xkb_keymap {\nxkb_keycodes \"evdev-onemw_aliases(qwerty)\" {\n\tminimum = 8;\n\tmaximum = 446;\n\t", ' ' , "= 9;\n\t", ' ' , "= 10;\n\t", ' ' , "= 11;\n\t", ' ' , "= 12;\n\t"..., format=XKB_KEYMAP_FORMAT_TEXT_V1, flags=XKB_KEYMAP_COMPILE_NO_FLAGS) at /usr/src/debug/libxkbcommon/0.5.0-r0/libxkbcommon-0.5.0/src/keymap.c:162 #4 0x000094ec in keyboard_keymap () #5 0xb636f718 in ffi_call_VFP () at ../libffi-3.2.1/src/arm/sysv.S:377 #6 0xb636fd2e in ffi_call (cif=cif@entry=0xbefff714, fn=, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0xbefff7d4) at /usr/src/debug/libffi/3.2.1-r0/libffi-3.2.1/src/arm/ffi.c:344 #7 0xb6630e46 in wl_closure_invoke (closure=closure@entry=0x1be28, flags=flags@entry=1, target=, target@entry=0x1bd58, opcode=opcode@entry=0, data=) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/connection.c:935 #8 0xb662f1fa in dispatch_event (display=display@entry=0x17378, queue=) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1310 #9 0xb662fc94 in dispatch_queue (queue=0x173e4, display=0x17378) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1456 #10 wl_display_dispatch_queue_pending (display=display@entry=0x17378, queue=queue@entry=0x173e4) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1698 #11 0xb662fd6c in wl_display_dispatch_queue (display=0x17378, queue=0x173e4) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1674 #12 0xb662ff1c in wl_display_roundtrip_queue (display=0x17378, queue=0x173e4) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1121 #13 0xb662ff44 in wl_display_roundtrip (display=) at /usr/src/debug/wayland/1.11.0-r0/wayland-1.11.0/src/wayland-client.c:1150 #14 0xb6ff5d4c in eglGetDisplay (display_id=) at /usr/src/debug/wayland-egl/rdkv-20180926+gitnightly_master_tag_09262018-r0/git/wayland-egl/wayland-egl.c:522 #15 0x00009a50 in main () (gdb) p ctx $1 = (struct xkb_context *) 0x0 --- wayland-input.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/wayland-input.c b/wayland-input.c index 83271a6..31e0851 100644 --- a/wayland-input.c +++ b/wayland-input.c @@ -170,6 +170,8 @@ static void draw_window (struct window *window) { } int main () { + xkb_context = xkb_context_new (XKB_CONTEXT_NO_FLAGS); + display = wl_display_connect (NULL); struct wl_registry *registry = wl_display_get_registry (display); wl_registry_add_listener (registry, ®istry_listener, NULL); @@ -178,8 +180,6 @@ int main () { egl_display = eglGetDisplay (display); eglInitialize (egl_display, NULL, NULL); - xkb_context = xkb_context_new (XKB_CONTEXT_NO_FLAGS); - struct window window; create_window (&window, WIDTH, HEIGHT);