diff options
author | Pekka Paalanen <pekka.paalanen@collabora.co.uk> | 2013-12-04 15:34:48 +0200 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2013-12-04 11:38:40 -0800 |
commit | 477333285e8fd41bfff0c74f6cb5bbc25bc90717 (patch) | |
tree | 9c95de992e4c2f96ff1baa2d89f0b42f4ae7370d /src | |
parent | 53b41c789060a6ea953c5d56956d071130e71701 (diff) |
rpi: launcher must init before udev-seat
udev-seat will call weston_launcher_open(), so we better init launcher
first. Fixes a segfault.
Cc: Jonas Ådahl <jadahl@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'src')
-rw-r--r-- | src/compositor-rpi.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c index 7d95e83c..88ea8e02 100644 --- a/src/compositor-rpi.c +++ b/src/compositor-rpi.c @@ -511,13 +511,6 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], goto out_compositor; } - if (udev_input_init(&compositor->input, - &compositor->base, - compositor->udev, "seat0") != 0) { - weston_log("Failed to initialize udev input.\n"); - goto out_udev; - } - compositor->session_listener.notify = session_notify; wl_signal_add(&compositor->base.session_signal, &compositor ->session_listener); @@ -525,7 +518,7 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], weston_launcher_connect(&compositor->base, param->tty, "seat0"); if (!compositor->base.launcher) { weston_log("Failed to initialize tty.\n"); - goto out_udev_input; + goto out_udev; } compositor->base.destroy = rpi_compositor_destroy; @@ -537,6 +530,13 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], weston_log("Dispmanx planes are %s buffered.\n", compositor->single_buffer ? "single" : "double"); + if (udev_input_init(&compositor->input, + &compositor->base, + compositor->udev, "seat0") != 0) { + weston_log("Failed to initialize udev input.\n"); + goto out_launcher; + } + for (key = KEY_F1; key < KEY_F9; key++) weston_compositor_add_key_binding(&compositor->base, key, MODIFIER_CTRL | MODIFIER_ALT, @@ -552,7 +552,7 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], bcm_host_init(); if (rpi_renderer_create(&compositor->base, ¶m->renderer) < 0) - goto out_launcher; + goto out_udev_input; if (rpi_output_create(compositor, param->output_transform) < 0) goto out_renderer; @@ -562,12 +562,12 @@ rpi_compositor_create(struct wl_display *display, int *argc, char *argv[], out_renderer: compositor->base.renderer->destroy(&compositor->base); -out_launcher: - weston_launcher_destroy(compositor->base.launcher); - out_udev_input: udev_input_destroy(&compositor->input); +out_launcher: + weston_launcher_destroy(compositor->base.launcher); + out_udev: udev_unref(compositor->udev); |