aboutsummaryrefslogtreecommitdiff
path: root/backend/drm/drm.c
diff options
context:
space:
mode:
Diffstat (limited to 'backend/drm/drm.c')
-rw-r--r--backend/drm/drm.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/backend/drm/drm.c b/backend/drm/drm.c
index 3effa9ff..ccdc92d9 100644
--- a/backend/drm/drm.c
+++ b/backend/drm/drm.c
@@ -856,9 +856,13 @@ void wlr_drm_connector_cleanup(struct wlr_drm_connector *conn) {
case WLR_DRM_CONN_CLEANUP:;
struct wlr_drm_crtc *crtc = conn->crtc;
for (int i = 0; i < 3; ++i) {
+ if (!crtc->planes[i]) {
+ continue;
+ }
+
wlr_drm_surface_finish(&crtc->planes[i]->surf);
wlr_drm_surface_finish(&crtc->planes[i]->mgpu_surf);
- if (crtc->planes[i] && crtc->planes[i]->id == 0) {
+ if (crtc->planes[i]->id == 0) {
free(crtc->planes[i]);
crtc->planes[i] = NULL;
}