diff --git a/composite/compalloc.c b/composite/compalloc.c index 4a1243170..d1342799b 100644 --- a/composite/compalloc.c +++ b/composite/compalloc.c @@ -309,7 +309,7 @@ compFreeClientWindow(WindowPtr pWin, XID id) if (pPixmap) { compRestoreWindow(pWin, pPixmap); - dixDestroyPixmap(pPixmap, 0); + (*pScreen->DestroyPixmap) (pPixmap); } } diff --git a/composite/compwindow.c b/composite/compwindow.c index 40a742438..1970860c3 100644 --- a/composite/compwindow.c +++ b/composite/compwindow.c @@ -180,7 +180,7 @@ compCheckRedirect(WindowPtr pWin) compSetParentPixmap(pWin); compRestoreWindow(pWin, pPixmap); - dixDestroyPixmap(pPixmap, 0); + (*pScreen->DestroyPixmap) (pPixmap); } } else if (should) { @@ -378,11 +378,13 @@ compImplicitRedirect(WindowPtr pWin, WindowPtr pParent) static void compFreeOldPixmap(WindowPtr pWin) { + ScreenPtr pScreen = pWin->drawable.pScreen; + if (pWin->redirectDraw != RedirectDrawNone) { CompWindowPtr cw = GetCompWindow(pWin); if (cw->pOldPixmap) { - dixDestroyPixmap(cw->pOldPixmap, 0); + (*pScreen->DestroyPixmap) (cw->pOldPixmap); cw->pOldPixmap = NullPixmap; } } @@ -615,7 +617,7 @@ compDestroyWindow(WindowPtr pWin) PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin); compSetParentPixmap(pWin); - dixDestroyPixmap(pPixmap, 0); + (*pScreen->DestroyPixmap) (pPixmap); } ret = (*pScreen->DestroyWindow) (pWin); cs->DestroyWindow = pScreen->DestroyWindow;