(!1711) 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>
This commit is contained in:
		
							parent
							
								
									241061e0f1
								
							
						
					
					
						commit
						283e3ec0bc
					
				|  | @ -308,7 +308,7 @@ compFreeClientWindow(WindowPtr pWin, XID id) | |||
| 
 | ||||
|     if (pPixmap) { | ||||
|         compRestoreWindow(pWin, pPixmap); | ||||
|         (*pScreen->DestroyPixmap) (pPixmap); | ||||
|         dixDestroyPixmap(pPixmap, 0); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -180,7 +180,7 @@ compCheckRedirect(WindowPtr pWin) | |||
| 
 | ||||
|             compSetParentPixmap(pWin); | ||||
|             compRestoreWindow(pWin, pPixmap); | ||||
|             (*pScreen->DestroyPixmap) (pPixmap); | ||||
|             dixDestroyPixmap(pPixmap, 0); | ||||
|         } | ||||
|     } | ||||
|     else if (should) { | ||||
|  | @ -378,13 +378,11 @@ 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) { | ||||
|             (*pScreen->DestroyPixmap) (cw->pOldPixmap); | ||||
|             dixDestroyPixmap(cw->pOldPixmap, 0); | ||||
|             cw->pOldPixmap = NullPixmap; | ||||
|         } | ||||
|     } | ||||
|  | @ -617,7 +615,7 @@ compDestroyWindow(WindowPtr pWin) | |||
|         PixmapPtr pPixmap = (*pScreen->GetWindowPixmap) (pWin); | ||||
| 
 | ||||
|         compSetParentPixmap(pWin); | ||||
|         (*pScreen->DestroyPixmap) (pPixmap); | ||||
|         dixDestroyPixmap(pPixmap, 0); | ||||
|     } | ||||
|     ret = (*pScreen->DestroyWindow) (pWin); | ||||
|     cs->DestroyWindow = pScreen->DestroyWindow; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue