diff options
author | Kristian Høgsberg <[email protected]> | 2010-02-15 15:15:05 -0500 |
---|---|---|
committer | Kristian Høgsberg <[email protected]> | 2010-02-16 10:38:50 -0500 |
commit | 925b901ba313a3ddd7567eca088951be39414430 (patch) | |
tree | e315ac8070bba9c23329206f890713b12f80eeb8 /src/mesa | |
parent | 97ec6076f596a3820a9b7c4b7eae18bd98c6676b (diff) |
dri2: Allocate cliprect as part of the __DRIdrawableRec
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/common/dri_util.c | 8 | ||||
-rw-r--r-- | 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 f5e7923835f..befe1675a04 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 e9d5a9d9864..8d02524f386 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; }; /** |