diff --git a/hw/xwayland/xwayland-screen.c b/hw/xwayland/xwayland-screen.c index bb18e5c94..b39a3d2fd 100644 --- a/hw/xwayland/xwayland-screen.c +++ b/hw/xwayland/xwayland-screen.c @@ -549,10 +549,6 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) Bool use_eglstreams = FALSE; #endif - xwl_screen = calloc(1, sizeof *xwl_screen); - if (xwl_screen == NULL) - return FALSE; - if (!dixRegisterPrivateKey(&xwl_screen_private_key, PRIVATE_SCREEN, 0)) return FALSE; if (!xwl_pixmap_init()) @@ -567,6 +563,10 @@ xwl_screen_init(ScreenPtr pScreen, int argc, char **argv) sizeof(struct xwl_client))) return FALSE; + xwl_screen = calloc(1, sizeof *xwl_screen); + if (xwl_screen == NULL) + return FALSE; + dixSetPrivate(&pScreen->devPrivates, &xwl_screen_private_key, xwl_screen); xwl_screen->screen = pScreen;