xserver/Xext
Enrico Weigelt, metux IT consult 42efd8db89 (!1709) treewide: NULL-protect ScreenRec->DestroyPixmap() calls
Right now, we're assuming that even when deep nesting involved, the proc
vector is always set to a valid function. One the one hand it requires
extra dummy procs in some cases, OTOH it's making upcoming refactoring
of the code flow unnecessarily complex.

The big plot (of subsequent commits) is splitting out the extension's
(and possibly subsystem's) special logic out of the wrapping chain and
let them be executed independently from the DDX/drivers - when applicable
even only when the pixmap is really destroyed (not just unref'ed).
(At some later point, it might even become be actually a valid situation
that DestroyPixmap vector really being NULL.)

See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1754
See: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1755

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2024-10-03 12:21:21 +02:00
..
bigreq.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
dpms.c os: unexport screen saver timer functions 2024-09-01 20:23:10 +00:00
dpmsproc.h dpms: Consolidate a bunch of stuff into Xext/dpms.c 2017-03-27 15:59:47 -04:00
geext.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
geext.h Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
geint.h xge: Hide some implementation details 2015-07-08 16:40:58 -04:00
hashtable.c dix: Fix undefined shift in ht_generic_hash 2019-10-15 14:06:30 -04:00
hashtable.h Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
meson.build Xace: dont install xace.h and xacestr.h anymore 2024-06-23 21:07:48 +00:00
panoramiX.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
panoramiX.h Xext: drop _PANORAMIX_SERVER 2024-06-23 19:31:46 +00:00
panoramiXSwap.c dispatch: Mark swapped dispatch as _X_COLD 2017-03-01 10:16:20 -05:00
panoramiXh.h Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
panoramiXprocs.c rename remaining RT_* defines to X11_RESTYPE_* 2024-04-15 19:00:47 -07:00
panoramiXsrv.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
saver.c dix: unexport cursor refcounting functions 2024-09-02 16:43:29 +00:00
security.c Xext: security: fix missing include of extinit_priv.h 2024-07-23 09:17:33 +02:00
securitysrv.h Xext: securitysrv.h: drop hacks for including secur.h 2024-06-23 19:20:12 +00:00
shape.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
shm.c (!1709) treewide: NULL-protect ScreenRec->DestroyPixmap() calls 2024-10-03 12:21:21 +02:00
shmint.h xext: Fix shmint.h to not use headers outside of sdk_HEADERS 2013-11-14 10:22:15 +09:00
sleepuntil.c prevent name clash on Windows w/ RT_* defines 2024-04-15 18:59:23 -07:00
sleepuntil.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
sync.c dix: unexport fields from opaque.h not used by modules/drivers 2024-06-23 21:19:27 +00:00
syncsdk.h xsync: Add resource inside of SyncCreate, export SyncCreate 2019-04-17 14:01:17 -07:00
syncsrv.h sync: Convert from "CARD64" to int64_t. 2017-09-20 13:19:27 -04:00
vidmode.c Fix spelling/wording issues 2020-07-05 13:07:33 -07:00
xace.c xace: typesafe hook function for XACE_KEY_AVAIL 2024-06-23 21:07:48 +00:00
xace.h xace: typesafe hook function for XACE_KEY_AVAIL 2024-06-23 21:07:48 +00:00
xacestr.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00
xcmisc.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
xf86bigfont.c Xext: xf86bigfont: split reply header and payload 2024-09-02 18:28:23 +00:00
xf86bigfontsrv.h Move extension initialisation prototypes into extinit.h 2012-07-09 23:06:41 -07:00
xres.c include: move private definitions out of extinit.h 2024-04-30 00:47:38 +00:00
xselinux.h include: unpexport SELINUX_* consts from include/global.h 2024-03-25 19:40:04 +00:00
xselinux_ext.c dix: unexport dixLookupProperty() 2024-09-02 17:50:47 +00:00
xselinux_hooks.c fix missing includes of <X11/Xfuncproto.h> 2024-07-20 17:18:38 +00:00
xselinux_label.c rename remaining RT_* defines to X11_RESTYPE_* 2024-04-15 19:00:47 -07:00
xselinuxint.h include: drop obsolete registry.h 2024-03-03 23:20:06 +00:00
xtest.c include: move private definitions out of input.h 2024-09-01 17:59:23 +00:00
xvdisp.c xv: unexport VALIDATE_XV_PORT and _XvBadPort macros 2024-07-26 23:51:13 +00:00
xvdisp.h Fix swapped Xv dispatch under Xinerama. 2007-12-02 14:15:36 -05:00
xvdix.h xv: unexport XvPortNotifyRec 2024-07-26 23:51:13 +00:00
xvdix_priv.h xv: unexport XvPortNotifyRec 2024-07-26 23:51:13 +00:00
xvmain.c (!1709) treewide: NULL-protect ScreenRec->DestroyPixmap() calls 2024-10-03 12:21:21 +02:00
xvmc.c xv: unexport VALIDATE_XV_PORT and _XvBadPort macros 2024-07-26 23:51:13 +00:00
xvmcext.h Replace 'pointer' type with 'void *' 2014-01-12 10:24:11 -08:00