summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2011-07-21 09:51:30 -0700
committerKristian Høgsberg <krh@bitplanet.net>2012-03-27 09:31:59 -0400
commit6aee3077a3262839a570320754f3da2d372f542d (patch)
tree4c8c00081b6553d28283915f46f2e5d55ead3dd7
parent913c309bf33a1e63f6969c62834e75a6611a9c73 (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