glx: Only remove drawables from the hash when we actually delete them

https://bugs.freedesktop.org/show_bug.cgi?id=30457
This commit is contained in:
Kristian Høgsberg 2010-09-29 08:32:12 -04:00
parent 08839c4055
commit 4b70fe8421
1 changed files with 6 additions and 4 deletions

View File

@ -391,17 +391,19 @@ driReleaseDrawables(struct glx_context *gc)
if (__glxHashLookup(priv->drawHash,
gc->currentDrawable, (void *) &pdraw) == 0) {
if (pdraw->drawable == pdraw->xDrawable)
if (pdraw->drawable == pdraw->xDrawable) {
(*pdraw->destroyDrawable)(pdraw);
__glxHashDelete(priv->drawHash, gc->currentDrawable);
__glxHashDelete(priv->drawHash, gc->currentDrawable);
}
}
if (gc->currentDrawable != gc->currentReadable &&
__glxHashLookup(priv->drawHash,
gc->currentReadable, (void *) &pdraw) == 0) {
if (pdraw->drawable == pdraw->xDrawable)
if (pdraw->drawable == pdraw->xDrawable) {
(*pdraw->destroyDrawable)(pdraw);
__glxHashDelete(priv->drawHash, gc->currentReadable);
__glxHashDelete(priv->drawHash, gc->currentReadable);
}
}
}