summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/xorg/xorg_crtc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/state_trackers/xorg/xorg_crtc.c')
-rw-r--r--src/gallium/state_trackers/xorg/xorg_crtc.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c
index 03bc6e37c9..82dae194c4 100644
--- a/src/gallium/state_trackers/xorg/xorg_crtc.c
+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c
@@ -256,7 +256,7 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image)
return;
err_bo_destroy:
- kms_bo_destroy(crtcp->cursor_bo);
+ kms_bo_destroy(&crtcp->cursor_bo);
}
#endif
@@ -304,10 +304,8 @@ xorg_crtc_cursor_destroy(xf86CrtcPtr crtc)
pipe_texture_reference(&crtcp->cursor_tex, NULL);
#ifdef HAVE_LIBKMS
if (crtcp->cursor_bo)
- kms_bo_destroy(crtcp->cursor_bo);
+ kms_bo_destroy(&crtcp->cursor_bo);
#endif
-
- xfree(crtcp);
}
/*
@@ -319,11 +317,12 @@ crtc_destroy(xf86CrtcPtr crtc)
{
struct crtc_private *crtcp = crtc->driver_private;
- if (crtcp->cursor_tex)
- pipe_texture_reference(&crtcp->cursor_tex, NULL);
+ xorg_crtc_cursor_destroy(crtc);
drmModeFreeCrtc(crtcp->drm_crtc);
+
xfree(crtcp);
+ crtc->driver_private = NULL;
}
static const xf86CrtcFuncsRec crtc_funcs = {