summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>2013-12-04 15:34:48 +0200
committerKristian Høgsberg <krh@bitplanet.net>2013-12-04 11:38:40 -0800
commit477333285e8fd41bfff0c74f6cb5bbc25bc90717 (patch)
tree9c95de992e4c2f96ff1baa2d89f0b42f4ae7370d /src
parent53b41c789060a6ea953c5d56956d071130e71701 (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.c24
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, &param->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);