From 4e1f2ff1c6a6e83bf72cfc76601b76126c59ba42 Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Wed, 6 Jun 2012 16:59:45 +0300 Subject: [PATCH] shell: fix a crash during 'make check' $ abs_builddir=$PWD/tests gdb -args ./src/weston --module=$PWD/tests/.libs/event-test.so (gdb) run Starting program: /home/pq/git/wayland-demos/src/weston --module=/home/pq/git/wayland-demos/tests/.libs/event-test.so [Thread debugging using libthread_db enabled] Mesa: Initializing x86-64 optimizations launching /home/pq/git/wayland-demos/tests/test-client created output global 0x608f50 test-client: got create-surface got surface 5 from client got surface id 5 Program received signal SIGSEGV, Segmentation fault. Mesa: Initializing x86-64 optimizations 0x00007fffeff72c7c in handle_pointer_focus (listener=0x74f5c0, data=0x6faa40) at shell.c:492 492 if (shsurf->unresponsive) { (gdb) bt #0 0x00007fffeff72c7c in handle_pointer_focus (listener=0x74f5c0, data=0x6faa40) at shell.c:492 #1 0x00007ffff5ed8b87 in wl_signal_emit (data=0x6faa40, signal=0x6faa88) at wayland-server.h:166 #2 wl_pointer_set_focus (pointer=0x6faa40, surface=, sx=12800, sy=12800) at wayland-server.c:752 #3 0x0000000000407d92 in weston_device_repick (seat=0x6fa930) at compositor.c:633 #4 0x0000000000407e49 in weston_compositor_repick (compositor=0x61c510) at compositor.c:656 #5 0x00000000004092e1 in weston_output_repaint (output=0x7b85b0, msecs=-1046834186) at compositor.c:1059 #6 0x00000000004094b4 in weston_output_finish_frame (output=0x7b85b0, msecs=-1046834186) at compositor.c:1092 #7 0x00007ffff211e3c1 in finish_frame_handler (data=0x7b85b0) at compositor-x11.c:284 #8 0x00007ffff5eda603 in wl_event_source_timer_dispatch (source=0x79ee50, ep=) at event-loop.c:173 #9 0x00007ffff5edaca0 in wl_event_loop_dispatch (loop=0x61b940, timeout=) at event-loop.c:410 #10 0x00007ffff5ed8dbd in wl_display_run (display=0x61b8f0) at wayland-server.c:1025 #11 0x000000000040ecb1 in main (argc=1, argv=0x7fffffffdd98) at compositor.c:3225 (gdb) print shsurf $1 = (struct shell_surface *) 0x0 Signed-off-by: Pekka Paalanen --- src/shell.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/shell.c b/src/shell.c index ba421b5..e25bf71 100644 --- a/src/shell.c +++ b/src/shell.c @@ -489,7 +489,7 @@ handle_pointer_focus(struct wl_listener *listener, void *data) compositor = surface->compositor; shsurf = get_shell_surface(surface); - if (shsurf->unresponsive) { + if (shsurf && shsurf->unresponsive) { set_busy_cursor(shsurf, pointer); } else { serial = wl_display_next_serial(compositor->wl_display); -- 2.7.4