render: use dixDestroyPixmap() instead of direct driver call
Direct calls to ScreenRec->DestroyPixmap() blocks cleaning up the wrapping jungle, so use the proper dix function instead. See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1754 Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1711>
This commit is contained in:
parent
d2a93d0346
commit
c8607ca66f
|
@ -608,7 +608,7 @@ miGlyphs(CARD8 op,
|
|||
maskFormat, CPComponentAlpha, &component_alpha,
|
||||
serverClient, &error);
|
||||
if (!pMask) {
|
||||
(*pScreen->DestroyPixmap) (pMaskPixmap);
|
||||
dixDestroyPixmap(pMaskPixmap, 0);
|
||||
return;
|
||||
}
|
||||
pGC = GetScratchGC(pMaskPixmap->drawable.depth, pScreen);
|
||||
|
@ -676,7 +676,7 @@ miGlyphs(CARD8 op,
|
|||
xSrc + x - xDst,
|
||||
ySrc + y - yDst, 0, 0, x, y, width, height);
|
||||
FreePicture((void *) pMask, (XID) 0);
|
||||
(*pScreen->DestroyPixmap) (pMaskPixmap);
|
||||
dixDestroyPixmap(pMaskPixmap, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -67,7 +67,7 @@ miChangePictureClip(PicturePtr pPicture, int type, void *value, int n)
|
|||
clientClip = BitmapToRegion(pScreen, (PixmapPtr) value);
|
||||
if (!clientClip)
|
||||
return BadAlloc;
|
||||
(*pScreen->DestroyPixmap) ((PixmapPtr) value);
|
||||
dixDestroyPixmap((PixmapPtr) value, 0);
|
||||
break;
|
||||
case CT_REGION:
|
||||
clientClip = value;
|
||||
|
|
|
@ -1416,7 +1416,7 @@ FreePicture(void *value, XID pid)
|
|||
}
|
||||
}
|
||||
else if (pPicture->pDrawable->type == DRAWABLE_PIXMAP) {
|
||||
(*pScreen->DestroyPixmap) ((PixmapPtr) pPicture->pDrawable);
|
||||
dixDestroyPixmap((PixmapPtr) pPicture->pDrawable, 0);
|
||||
}
|
||||
}
|
||||
dixFreeObjectWithPrivates(pPicture, PRIVATE_PICTURE);
|
||||
|
|
|
@ -1137,7 +1137,7 @@ ProcRenderAddGlyphs(ClientPtr client)
|
|||
|
||||
/* The picture takes a reference to the pixmap, so we
|
||||
drop ours. */
|
||||
(pScreen->DestroyPixmap) (pDstPix);
|
||||
dixDestroyPixmap(pDstPix, 0);
|
||||
pDstPix = NULL;
|
||||
|
||||
if (!pDst) {
|
||||
|
@ -1542,7 +1542,7 @@ ProcRenderCreateCursor(ClientPtr client)
|
|||
free(mskbits);
|
||||
return error;
|
||||
}
|
||||
(*pScreen->DestroyPixmap) (pPixmap);
|
||||
dixDestroyPixmap(pPixmap, 0);
|
||||
CompositePicture(PictOpSrc,
|
||||
pSrc, 0, pPicture, 0, 0, 0, 0, 0, 0, width, height);
|
||||
(*pScreen->GetImage) (pPicture->pDrawable,
|
||||
|
|
Loading…
Reference in New Issue