From 139a905924e9c6cd22613dfbbe73c4642c993e41 Mon Sep 17 00:00:00 2001 From: emersion Date: Mon, 17 Sep 2018 22:25:20 +0200 Subject: backend/drm: add assertions --- backend/drm/backend.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'backend/drm/backend.c') diff --git a/backend/drm/backend.c b/backend/drm/backend.c index 1df5cdd1..bba79bda 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -15,8 +15,14 @@ #include "backend/drm/drm.h" #include "util/signal.h" +struct wlr_drm_backend *get_drm_backend_from_backend( + struct wlr_backend *wlr_backend) { + assert(wlr_backend_is_drm(wlr_backend)); + return (struct wlr_drm_backend *)wlr_backend; +} + static bool backend_start(struct wlr_backend *backend) { - struct wlr_drm_backend *drm = (struct wlr_drm_backend *)backend; + struct wlr_drm_backend *drm = get_drm_backend_from_backend(backend); scan_drm_connectors(drm); return true; } @@ -26,7 +32,7 @@ static void backend_destroy(struct wlr_backend *backend) { return; } - struct wlr_drm_backend *drm = (struct wlr_drm_backend *)backend; + struct wlr_drm_backend *drm = get_drm_backend_from_backend(backend); restore_drm_outputs(drm); @@ -50,7 +56,7 @@ static void backend_destroy(struct wlr_backend *backend) { static struct wlr_renderer *backend_get_renderer( struct wlr_backend *backend) { - struct wlr_drm_backend *drm = (struct wlr_drm_backend *)backend; + struct wlr_drm_backend *drm = get_drm_backend_from_backend(backend); if (drm->parent) { return drm->parent->renderer.wlr_rend; @@ -141,7 +147,9 @@ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display, wl_list_init(&drm->outputs); drm->fd = gpu_fd; - drm->parent = (struct wlr_drm_backend *)parent; + if (parent != NULL) { + drm->parent = get_drm_backend_from_backend(parent); + } drm->drm_invalidated.notify = drm_invalidated; wlr_session_signal_add(session, gpu_fd, &drm->drm_invalidated); @@ -187,6 +195,6 @@ error_fd: } struct wlr_session *wlr_drm_backend_get_session(struct wlr_backend *backend) { - struct wlr_drm_backend *drm = (struct wlr_drm_backend *)backend; + struct wlr_drm_backend *drm = get_drm_backend_from_backend(backend); return drm->session; } -- cgit v1.2.3