Merge branch 'mesa_7_7_branch'
[mesa.git] / src / gallium / state_trackers / xorg / xorg_crtc.c
index 03bc6e37c9ced2cbb3c0445806d6d1a380494c71..82dae194c4bd434f478849d036674895907605b2 100644 (file)
@@ -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 = {