summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorldelgass <ldelgass>2003-02-16 02:02:11 +0000
committerldelgass <ldelgass>2003-02-16 02:02:11 +0000
commita71da4872e22319beb93be93ac7d0038add69258 (patch)
tree5e1786defaac909f143c4c88af2f3348ea6f83fb
parentf287b43cdeb53a25ca56e5e8b7a2cb478ac749ce (diff)
Sync with XFree86 cvs (drawable fix, pBackClipRects leak fix)
-rw-r--r--xc/lib/GL/dri/dri_util.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/xc/lib/GL/dri/dri_util.c b/xc/lib/GL/dri/dri_util.c
index de2c2745e..3152dd5aa 100644
--- a/xc/lib/GL/dri/dri_util.c
+++ b/xc/lib/GL/dri/dri_util.c
@@ -609,7 +609,8 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
DRM_SPINUNLOCK(&psp->pSAREA->drawable_lock, psp->drawLockID);
- if (!XF86DRIGetDrawableInfo(pdp->display, pdp->screen, pdp->draw,
+ if (!__driFindDrawable(psp->drawHash, pdp->draw) ||
+ !XF86DRIGetDrawableInfo(pdp->display, pdp->screen, pdp->draw,
&pdp->index, &pdp->lastStamp,
&pdp->x, &pdp->y, &pdp->w, &pdp->h,
&pdp->numClipRects, &pdp->pClipRects,
@@ -625,7 +626,7 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
pdp->numClipRects = 0;
pdp->pClipRects = NULL;
pdp->numBackClipRects = 0;
- pdp->pBackClipRects = 0;
+ pdp->pBackClipRects = NULL;
}
else
pdp->pStamp = &(psp->pSAREA->drawableTable[pdp->index].stamp);
@@ -745,8 +746,14 @@ static void driDestroyDrawable(Display *dpy, void *drawablePrivate)
(*psp->DriverAPI.DestroyBuffer)(pdp);
if (__driWindowExists(dpy, pdp->draw))
(void)XF86DRIDestroyDrawable(dpy, scrn, pdp->draw);
- if (pdp->pClipRects)
+ if (pdp->pClipRects) {
Xfree(pdp->pClipRects);
+ pdp->pClipRects = NULL;
+ }
+ if (pdp->pBackClipRects) {
+ Xfree(pdp->pBackClipRects);
+ pdp->pBackClipRects = NULL;
+ }
Xfree(pdp);
}
}