From fa9c6ecc53355a53d442036b0a6e98588d2abed7 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 28 Oct 2017 15:09:38 -0400 Subject: [PATCH] Fix segfault in DRM cursor --- backend/drm/drm.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/drm/drm.c b/backend/drm/drm.c index a3594bb0..27a8490c 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -503,13 +503,6 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output, struct wlr_drm_crtc *crtc = conn->crtc; struct wlr_drm_plane *plane = crtc->cursor; - if (!buf && update_pixels) { - // Hide the cursor - plane->cursor_enabled = false; - return drm->iface->crtc_set_cursor(drm, crtc, NULL); - } - plane->cursor_enabled = true; - // We don't have a real cursor plane, so we make a fake one if (!plane) { plane = calloc(1, sizeof(*plane)); @@ -520,6 +513,13 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output, crtc->cursor = plane; } + if (!buf && update_pixels) { + // Hide the cursor + plane->cursor_enabled = false; + return drm->iface->crtc_set_cursor(drm, crtc, NULL); + } + plane->cursor_enabled = true; + if (!plane->surf.gbm) { int ret; uint64_t w, h;