composite: 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
5b541780c1
commit
eb5476381a
|
@ -308,7 +308,7 @@ compFreeClientWindow(WindowPtr pWin, XID id)
|
||||||
|
|
||||||
if (pPixmap) {
|
if (pPixmap) {
|
||||||
compRestoreWindow(pWin, pPixmap);
|
compRestoreWindow(pWin, pPixmap);
|
||||||
(*pScreen->DestroyPixmap) (pPixmap);
|
dixDestroyPixmap(pPixmap, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,7 +180,7 @@ compCheckRedirect(WindowPtr pWin)
|
||||||
|
|
||||||
compSetParentPixmap(pWin);
|
compSetParentPixmap(pWin);
|
||||||
compRestoreWindow(pWin, pPixmap);
|
compRestoreWindow(pWin, pPixmap);
|
||||||
(*pScreen->DestroyPixmap) (pPixmap);
|
dixDestroyPixmap(pPixmap, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (should) {
|
else if (should) {
|
||||||
|
@ -378,13 +378,11 @@ compImplicitRedirect(WindowPtr pWin, WindowPtr pParent)
|
||||||
static void
|
static void
|
||||||
compFreeOldPixmap(WindowPtr pWin)
|
compFreeOldPixmap(WindowPtr pWin)
|
||||||
{
|
{
|
||||||
ScreenPtr pScreen = pWin->drawable.pScreen;
|
|
||||||
|
|
||||||
if (pWin->redirectDraw != RedirectDrawNone) {
|
if (pWin->redirectDraw != RedirectDrawNone) {
|
||||||
CompWindowPtr cw = GetCompWindow(pWin);
|
CompWindowPtr cw = GetCompWindow(pWin);
|
||||||
|
|
||||||
if (cw->pOldPixmap) {
|
if (cw->pOldPixmap) {
|
||||||
(*pScreen->DestroyPixmap) (cw->pOldPixmap);
|
dixDestroyPixmap(cw->pOldPixmap, 0);
|
||||||
cw->pOldPixmap = NullPixmap;
|
cw->pOldPixmap = NullPixmap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -617,7 +615,7 @@ compDestroyWindow(WindowPtr pWin)
|
||||||
PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin);
|
||||||
|
|
||||||
compSetParentPixmap(pWin);
|
compSetParentPixmap(pWin);
|
||||||
(*pScreen->DestroyPixmap) (pPixmap);
|
dixDestroyPixmap(pPixmap, 0);
|
||||||
}
|
}
|
||||||
ret = (*pScreen->DestroyWindow) (pWin);
|
ret = (*pScreen->DestroyWindow) (pWin);
|
||||||
cs->DestroyWindow = pScreen->DestroyWindow;
|
cs->DestroyWindow = pScreen->DestroyWindow;
|
||||||
|
|
Loading…
Reference in New Issue