summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/kdrive/src/kaapict.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/hw/kdrive/src/kaapict.c b/hw/kdrive/src/kaapict.c
index bbd1584ff..da093b224 100644
--- a/hw/kdrive/src/kaapict.c
+++ b/hw/kdrive/src/kaapict.c
@@ -546,11 +546,11 @@ kaaComposite(CARD8 op,
KaaScreenPriv (pDst->pDrawable->pScreen);
int ret = -1;
- if (!pMask)
+ if (!pMask && pSrc->pDrawable)
{
if (op == PictOpSrc)
{
- if (pScreenPriv->enabled && pSrc->pDrawable->width == 1 &&
+ if (pScreenPriv->enabled && pSrc->pDrawable && pSrc->pDrawable->width == 1 &&
pSrc->pDrawable->height == 1 && pSrc->repeat)
{
ret = kaaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
@@ -592,7 +592,8 @@ kaaComposite(CARD8 op,
}
}
- if (pScreenPriv->enabled && pKaaScr->info->PrepareComposite &&
+ if (pSrc->pDrawable && (!pMask || pMask->pDrawable) &&
+ pScreenPriv->enabled && pKaaScr->info->PrepareComposite &&
!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
{
ret = kaaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,