summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2011-07-21 09:51:30 -0700
committerChristopher James Halse Rogers <christopher.halse.rogers@canonical.com>2012-06-13 15:26:19 +1000
commit53da4707e301e6369008aa60366cd374ae3eace8 (patch)
tree7e8babfcac8de70dd64ec6b18e7db79dcaf317ff
parentd2f3202da8d603bfafba686bc4268a26da4fdef1 (diff)
xwayland: Don't crash if the xserver object isn't available
-rw-r--r--hw/xfree86/xwayland/xwayland-window.c5
-rw-r--r--hw/xfree86/xwayland/xwayland.c13
2 files changed, 7 insertions, 11 deletions
diff --git a/hw/xfree86/xwayland/xwayland-window.c b/hw/xfree86/xwayland/xwayland-window.c
index 8649bdcc2..f16571330 100644
--- a/hw/xfree86/xwayland/xwayland-window.c
+++ b/hw/xfree86/xwayland/xwayland-window.c
@@ -166,8 +166,9 @@ xwl_realize_window(WindowPtr window)
return FALSE;
}
- xserver_set_window_id(xwl_screen->xorg_server,
- xwl_window->surface, window->drawable.id);
+ if (xwl_screen->xorg_server)
+ xserver_set_window_id(xwl_screen->xorg_server,
+ xwl_window->surface, window->drawable.id);
visual = wVisual(window);
for (i = 0; i < screen->numVisuals; i++)
diff --git a/hw/xfree86/xwayland/xwayland.c b/hw/xfree86/xwayland/xwayland.c
index cf50636c1..e9f6964bd 100644
--- a/hw/xfree86/xwayland/xwayland.c
+++ b/hw/xfree86/xwayland/xwayland.c
@@ -81,16 +81,11 @@ xwl_input_delayed_init(void *data)
xwl_input_init(xwl_screen);
id = wl_display_get_global(xwl_screen->display, "xserver", 1);
- if (id == 0) {
- ErrorF("No xserver interface");
- return Success;
+ if (id != 0) {
+ xwl_screen->xorg_server = xserver_create (xwl_screen->display, id, 1);
+ xserver_add_listener(xwl_screen->xorg_server,
+ &xserver_listener, xwl_screen);
}
-
- xwl_screen->xorg_server = xserver_create (xwl_screen->display, id, 1);
- xserver_add_listener(xwl_screen->xorg_server,
- &xserver_listener, xwl_screen);
-
- return Success;
}
static void