exa: avoid a potential Prepare/FinishAccess inbalance.

This commit is contained in:
Maarten Maathuis 2009-03-01 01:15:28 +01:00
parent 10334cf7e6
commit 3ea3d505e8

View File

@ -405,7 +405,7 @@ ExaCheckComposite (CARD8 op,
if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst, if (!miComputeCompositeRegion (&region, pSrc, pMask, pDst,
xSrc, ySrc, xMask, yMask, xDst, yDst, xSrc, ySrc, xMask, yMask, xDst, yDst,
width, height)) width, height))
return; goto skip;
exaGetDrawableDeltas (pDst->pDrawable, exaGetDrawableDeltas (pDst->pDrawable,
exaGetDrawablePixmap(pDst->pDrawable), exaGetDrawablePixmap(pDst->pDrawable),
@ -450,16 +450,18 @@ ExaCheckComposite (CARD8 op,
#endif /* RENDER */ #endif /* RENDER */
if (pMask && pMask->pDrawable != NULL) if (pMask && pMask->pDrawable != NULL)
exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK); exaFinishAccess (pMask->pDrawable, EXA_PREPARE_MASK);
if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
exaFinishAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
if (pSrc->pDrawable != NULL) if (pSrc->pDrawable != NULL)
exaFinishAccess (pSrc->pDrawable, EXA_PREPARE_SRC); exaFinishAccess (pSrc->pDrawable, EXA_PREPARE_SRC);
if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
exaFinishAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
exaFinishAccess (pDst->pDrawable, EXA_PREPARE_DEST); exaFinishAccess (pDst->pDrawable, EXA_PREPARE_DEST);
if (pDst->alphaMap && pDst->alphaMap->pDrawable) if (pDst->alphaMap && pDst->alphaMap->pDrawable)
exaFinishAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST); exaFinishAccess(pDst->alphaMap->pDrawable, EXA_PREPARE_AUX_DEST);
skip:
if (pSrc->alphaMap && pSrc->alphaMap->pDrawable)
exaFinishAccess(pSrc->alphaMap->pDrawable, EXA_PREPARE_AUX_SRC);
if (pMask && pMask->alphaMap && pMask->alphaMap->pDrawable)
exaFinishAccess(pMask->alphaMap->pDrawable, EXA_PREPARE_AUX_MASK);
REGION_UNINIT(pScreen, &region); REGION_UNINIT(pScreen, &region);
} }