exa: 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
4694b8488e
commit
9ca03e6da0
|
@ -194,7 +194,7 @@ exaRealizeGlyphCaches(ScreenPtr pScreen, unsigned int format)
|
|||
CPComponentAlpha, &component_alpha, serverClient,
|
||||
&error);
|
||||
|
||||
(*pScreen->DestroyPixmap) (pPixmap); /* picture holds a refcount */
|
||||
dixDestroyPixmap(pPixmap, 0); /* picture holds a refcount */
|
||||
|
||||
if (!pPicture)
|
||||
return FALSE;
|
||||
|
@ -728,7 +728,7 @@ exaGlyphs(CARD8 op,
|
|||
{
|
||||
PictFormatPtr argbFormat;
|
||||
|
||||
(*pScreen->DestroyPixmap) (pMaskPixmap);
|
||||
dixDestroyPixmap(pMaskPixmap, 0);
|
||||
|
||||
if (!pMask)
|
||||
return;
|
||||
|
@ -751,7 +751,7 @@ exaGlyphs(CARD8 op,
|
|||
pMask = CreatePicture(0, &pMaskPixmap->drawable, maskFormat, 0, 0,
|
||||
serverClient, &error);
|
||||
if (!pMask) {
|
||||
(*pScreen->DestroyPixmap) (pMaskPixmap);
|
||||
dixDestroyPixmap(pMaskPixmap, 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -832,6 +832,6 @@ exaGlyphs(CARD8 op,
|
|||
xSrc + x - first_xOff,
|
||||
ySrc + y - first_yOff, 0, 0, x, y, width, height);
|
||||
FreePicture((void *) pMask, (XID) 0);
|
||||
(*pScreen->DestroyPixmap) (pMaskPixmap);
|
||||
dixDestroyPixmap(pMaskPixmap, 0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -614,7 +614,7 @@ ExaOffscreenDefragment(ScreenPtr pScreen)
|
|||
pDstPix->drawable.depth = 0;
|
||||
pDstPix->drawable.bitsPerPixel = 0;
|
||||
|
||||
(*pScreen->DestroyPixmap) (pDstPix);
|
||||
dixDestroyPixmap(pDstPix, 0);
|
||||
|
||||
if (area->state == ExaOffscreenAvail && area->size > largest_size)
|
||||
return area;
|
||||
|
|
|
@ -1082,7 +1082,7 @@ exaCreateAlphaPicture(ScreenPtr pScreen,
|
|||
return 0;
|
||||
pGC = GetScratchGC(pPixmap->drawable.depth, pScreen);
|
||||
if (!pGC) {
|
||||
(*pScreen->DestroyPixmap) (pPixmap);
|
||||
dixDestroyPixmap(pPixmap, 0);
|
||||
return 0;
|
||||
}
|
||||
ValidateGC(&pPixmap->drawable, pGC);
|
||||
|
@ -1095,7 +1095,7 @@ exaCreateAlphaPicture(ScreenPtr pScreen,
|
|||
FreeScratchGC(pGC);
|
||||
pPicture = CreatePicture(0, &pPixmap->drawable, pPictFormat,
|
||||
0, 0, serverClient, &error);
|
||||
(*pScreen->DestroyPixmap) (pPixmap);
|
||||
dixDestroyPixmap(pPixmap, 0);
|
||||
return pPicture;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue