Mesa (master): dri2: Allocate cliprect as part of the __DRIdrawableRec

Kristian Høgsberg krh at kemper.freedesktop.org
Tue Feb 16 15:39:37 UTC 2010


Module: Mesa
Branch: master
Commit: 925b901ba313a3ddd7567eca088951be39414430
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=925b901ba313a3ddd7567eca088951be39414430

Author: Kristian Høgsberg <krh at bitplanet.net>
Date:   Mon Feb 15 15:15:05 2010 -0500

dri2: Allocate cliprect as part of the __DRIdrawableRec

---

 src/mesa/drivers/dri/common/dri_util.c |    8 ++++----
 src/mesa/drivers/dri/common/dri_util.h |    4 ++++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/common/dri_util.c b/src/mesa/drivers/dri/common/dri_util.c
index f5e7923..befe167 100644
--- a/src/mesa/drivers/dri/common/dri_util.c
+++ b/src/mesa/drivers/dri/common/dri_util.c
@@ -485,8 +485,8 @@ dri2CreateNewDrawable(__DRIscreen *screen,
     if (!pdraw)
     	return NULL;
 
-    pdraw->pClipRects = _mesa_malloc(sizeof *pdraw->pBackClipRects);
-    pdraw->pBackClipRects = _mesa_malloc(sizeof *pdraw->pBackClipRects);
+    pdraw->pClipRects = &pdraw->dri2.clipRect;
+    pdraw->pBackClipRects = &pdraw->dri2.clipRect;
 
     return pdraw;
 }
@@ -507,11 +507,11 @@ static void dri_put_drawable(__DRIdrawable *pdp)
 
 	psp = pdp->driScreenPriv;
         (*psp->DriverAPI.DestroyBuffer)(pdp);
-	if (pdp->pClipRects) {
+	if (pdp->pClipRects && pdp->pClipRects != &pdp->dri2.clipRect) {
 	    _mesa_free(pdp->pClipRects);
 	    pdp->pClipRects = NULL;
 	}
-	if (pdp->pBackClipRects) {
+	if (pdp->pBackClipRects && pdp->pClipRects != &pdp->dri2.clipRect) {
 	    _mesa_free(pdp->pBackClipRects);
 	    pdp->pBackClipRects = NULL;
 	}
diff --git a/src/mesa/drivers/dri/common/dri_util.h b/src/mesa/drivers/dri/common/dri_util.h
index e9d5a9d..8d02524 100644
--- a/src/mesa/drivers/dri/common/dri_util.h
+++ b/src/mesa/drivers/dri/common/dri_util.h
@@ -378,6 +378,10 @@ struct __DRIdrawableRec {
     unsigned int swap_interval;
 
     GLboolean validBuffers;
+
+    struct {
+	drm_clip_rect_t clipRect;
+    } dri2;
 };
 
 /**




More information about the mesa-commit mailing list