Another obscure bug causing an infinite loop when multiple contexts are

bound to a drawable.
This commit is contained in:
Thomas Hellström 2006-09-22 14:52:31 +00:00
parent e3904516bb
commit 1c2c1c4560

View file

@ -403,8 +403,9 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
__DRIcontextPrivate *pcp = pdp->driContextPriv;
if (!pcp || (pdp != pcp->driDrawablePriv)) {
/* ERROR!!! */
return;
/* ERROR!!!
* ..but we must ignore it. There can be many contexts bound to a drawable.
*/
}
psp = pdp->driScreenPriv;
@ -435,6 +436,7 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
/* Error -- eg the window may have been destroyed. Keep going
* with no cliprects.
*/
fprintf(stderr, "Drawable destroyed");
pdp->pStamp = &pdp->lastStamp; /* prevent endless loop */
pdp->numClipRects = 0;
pdp->pClipRects = NULL;