Xext: shm: 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
							
								
									7ce19233bc
								
							
						
					
					
						commit
						c0f3b5bcef
					
				|  | @ -511,7 +511,7 @@ doShmPutImage(DrawablePtr dst, GCPtr pGC, | ||||||
|         else |         else | ||||||
|             (void) (*pGC->ops->CopyArea) (&pPixmap->drawable, dst, pGC, 0, 0, |             (void) (*pGC->ops->CopyArea) (&pPixmap->drawable, dst, pGC, 0, 0, | ||||||
|                                           sw, sh, dx, dy); |                                           sw, sh, dx, dy); | ||||||
|         (*pPixmap->drawable.pScreen->DestroyPixmap) (pPixmap); |         dixDestroyPixmap(pPixmap, 0); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | @ -1001,7 +1001,7 @@ ProcPanoramiXShmCreatePixmap(ClientPtr client) | ||||||
|             result = XaceHookResourceAccess(client, stuff->pid, |             result = XaceHookResourceAccess(client, stuff->pid, | ||||||
|                               X11_RESTYPE_PIXMAP, pMap, X11_RESTYPE_NONE, NULL, DixCreateAccess); |                               X11_RESTYPE_PIXMAP, pMap, X11_RESTYPE_NONE, NULL, DixCreateAccess); | ||||||
|             if (result != Success) { |             if (result != Success) { | ||||||
|                 pDraw->pScreen->DestroyPixmap(pMap); |                 dixDestroyPixmap(pMap, 0); | ||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
|             dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); |             dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); | ||||||
|  | @ -1045,7 +1045,7 @@ fbShmCreatePixmap(ScreenPtr pScreen, | ||||||
|                                          BitsPerPixel(depth), |                                          BitsPerPixel(depth), | ||||||
|                                          PixmapBytePad(width, depth), |                                          PixmapBytePad(width, depth), | ||||||
|                                          (void *) addr)) { |                                          (void *) addr)) { | ||||||
|         (*pScreen->DestroyPixmap) (pPixmap); |         dixDestroyPixmap(pPixmap, 0); | ||||||
|         return NullPixmap; |         return NullPixmap; | ||||||
|     } |     } | ||||||
|     return pPixmap; |     return pPixmap; | ||||||
|  | @ -1116,7 +1116,7 @@ ProcShmCreatePixmap(ClientPtr client) | ||||||
|         rc = XaceHookResourceAccess(client, stuff->pid, X11_RESTYPE_PIXMAP, |         rc = XaceHookResourceAccess(client, stuff->pid, X11_RESTYPE_PIXMAP, | ||||||
|                       pMap, X11_RESTYPE_NONE, NULL, DixCreateAccess); |                       pMap, X11_RESTYPE_NONE, NULL, DixCreateAccess); | ||||||
|         if (rc != Success) { |         if (rc != Success) { | ||||||
|             pDraw->pScreen->DestroyPixmap(pMap); |             dixDestroyPixmap(pMap, 0); | ||||||
|             return rc; |             return rc; | ||||||
|         } |         } | ||||||
|         dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); |         dixSetPrivate(&pMap->devPrivates, shmPixmapPrivateKey, shmdesc); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue