summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Paalanen <ppaalanen@gmail.com>2012-06-06 16:59:45 +0300
committerKristian Høgsberg <krh@bitplanet.net>2012-06-06 13:27:56 -0400
commit4e1f2ff1c6a6e83bf72cfc76601b76126c59ba42 (patch)
tree0e37d678b5ce68dae3640b2b3d534b50725f457c
parent78a0b57e5771305ee4c9b90d13683db7e2e2fbf9 (diff)
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=<optimized out>, 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=<optimized out>) at event-loop.c:173 #9 0x00007ffff5edaca0 in wl_event_loop_dispatch (loop=0x61b940, timeout=<optimized out>) 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 <ppaalanen@gmail.com>
-rw-r--r--src/shell.c2
1 files changed, 1 insertions, 1 deletions
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);