Fix an infinite loop error that may occur when many contexts are bound

to the same drawable in a multithreading environment. This one slipped out
of the texman merge.
This commit is contained in:
Thomas Hellström
2006-12-01 12:41:43 +00:00
parent 40dc5902d3
commit 682393944c

View File

@@ -411,13 +411,18 @@ __driUtilUpdateDrawableInfo(__DRIdrawablePrivate *pdp)
if (!pcp if (!pcp
|| ((pdp != pcp->driDrawablePriv) && (pdp != pcp->driReadablePriv))) { || ((pdp != pcp->driDrawablePriv) && (pdp != pcp->driReadablePriv))) {
/* ERROR!!! */ /* ERROR!!!
return; * ...but we must ignore it. There can be many contexts bound to a
* drawable.
*/
} }
psp = pdp->driScreenPriv; psp = pdp->driScreenPriv;
if (!psp) { if (!psp) {
/* ERROR!!! */ /* ERROR!!! */
_mesa_problem("Warning! Possible infinite loop due to bug "
"in file %s, line %d\n",
__FILE__, __LINE__);
return; return;
} }