Enrico Weigelt, metux IT consult
7eff742ef2
randr: use struct initializer for reply structs
...
Improve readability, move the declarations to where they're needed first
and get rid of extra individual assignments. In some cases this should also
allow the compiler to produce a bit more efficient code.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1794 >
2025-02-24 20:30:26 +00:00
Enrico Weigelt, metux IT consult
6d2c42d0c8
randr: RRCrtcCreate(): drop unnecessary zero assigments
...
The struct is already zero'ed out by calloc(), so no need to additionally
clear individual fields.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1794 >
2025-02-24 20:30:26 +00:00
Enrico Weigelt, metux IT consult
058815bed1
randr: use explicit case statement instead of SProcRandrVector table
...
No need to go indirectly through a vector table, since everything's fixed
anyways. It's not a pretty robust programming style: any changes need great
care, in order to not mix up things.
Replacing this by direct switch/case statement, which is using the defines
from the xrandr protocol headers. Also adding a little bit more protection
against subtle programming errors and reducing cognitive load (source size)
on understanding the code by using a tiny macro for deducing define name and
function name from the request's name.
This approach actually uncovered some subtle bug that had been waiting in
the dark for over 15 years.
As collateral benefit, getting a tiny bit better performance.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1794 >
2025-02-24 20:30:26 +00:00
Enrico Weigelt, metux IT consult
42677ae1e3
randr: use explicit case statement instead of ProcRandrVector table
...
No need to go indirectly through a vector table, since everything's fixed
anyways. It's not a pretty robust programming style: any changes need great
care, in order to not mix up things.
Replacing this by direct switch/case statement, which is using the defines
from the xrandr protocol headers. Also adding a little bit more protection
against subtle programming errors and reducing cognitive load (source size)
on understanding the code by using a tiny macro for deducing define name and
function name from the request's name.
This approach actually uncovered some subtle bug that had been waiting in the
dark for over 15 years (see commit b87314c876
)
As collateral benefit, getting a tiny bit better performance.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1794 >
2025-02-24 20:30:26 +00:00
Enrico Weigelt, metux IT consult
ed17224403
randr: let SProc*'s call their Proc*'s directly
...
No need to go indirectly through an vector table. It's much clearer and
easier to understand when calling them directly. And a tiny bit performance
improvement as collateral benefit.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1794 >
2025-02-24 20:30:26 +00:00
Enrico Weigelt, metux IT consult
1fc9a26afd
drop not needed includes of geext.h
...
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
2025-02-24 20:19:55 +00:00
Enrico Weigelt, metux IT consult
a955b83848
Xext: dpms: need to include geext.h
...
It's calling GERegisterExtension(), which is defined in geext.h
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
2025-02-24 20:19:55 +00:00
Enrico Weigelt, metux IT consult
ce1f0c9375
present: need to include geext.h
...
It's calling GERegisterExtension(), which is defined in geext.h
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
2025-02-24 20:19:55 +00:00
Enrico Weigelt, metux IT consult
80593ab279
misc.h: move out MAXEXTENSIONS to geext.c
...
The only user of it is geext.c, so no need to have that define
in a public include file.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1810 >
2025-02-24 20:19:55 +00:00
Enrico Weigelt, metux IT consult
3f469acb96
panoramix: don't install panoramiX.h and panoramiXsrv.h
...
Not used by any drivers/modules, so no need to keep them public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1815 >
2025-02-24 20:06:30 +00:00
Enrico Weigelt, metux IT consult
86244ff36f
dbe: fix byte swapping in SProcDbeSwapBuffers()
...
The loop forgot to move the SwapInfo pointer, so the same list entry
gets swapped over and over again, while the remaining ones get ignored.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1822 >
2025-02-24 16:24:53 +01:00
Enrico Weigelt, metux IT consult
de0aed0543
misc.h: move out checked_int64_(add|subtract)
...
These inline functions are used only in exactly one place,
so no need to keep them in a public header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1808 >
2025-02-23 18:08:45 +00:00
Enrico Weigelt, metux IT consult
b664b44869
present: fix prototype for present_select_input()
...
Wants XID instead of CARD32 for 2nd parameter.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1809 >
2025-02-23 18:01:02 +00:00
Enrico Weigelt, metux IT consult
90bc995016
Xext: geext: move geeint.h stuff into geext.c
...
Everything in here only used by geext.c, so no need to keep
a separate header file for that.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
658f1b34ee
Xext: geext.h: fix missing include of Xfuncproto.h
...
Needed for _X_EXPORT.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
20d4c40df4
Xext: geext.h: don't include <dix-config.h>
...
Really no need to ever include it from here.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
a7600ac884
Xext: geext: move struct _GEExtension into geext.c
...
Not used anywhere outside geext implementation itself,
so shouldn't be public at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
896937298b
Xext: geext: unexport GEExtensions[]
...
This field isn't used by anybody outside, nor should it be accessed
directly. So better make it local.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
6fa340c578
Xext: geext: drop unused GEInitEvent()
...
This function isn't called by anybody, so no need to keep it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
480a7e4b11
Xext: geext: drop unused GEV() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
ae7bbd36df
Xext: geext: drop unused GEEXT() macro
...
Not used by anybody, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
b865f44f5e
Xext: geext: drop unused GEEXTIDX() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
1006a37f7d
Xext: geext: drop unused GEMaskIsSet() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
c1d49e19b9
Xext: geext: drop unused GECLIENT() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
01ad88b8c8
Xext: geext: drop unused GEIsType() macro
...
Not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
bdb5d4867a
Xext: geext: drop unused GEEventFill() macro
...
It's not used anywhere, so no need to keep it around any longer.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1811 >
2025-02-23 17:53:25 +00:00
Enrico Weigelt, metux IT consult
1dc648b1b7
os: drop unused TimerCheck()
...
This isn't used anywhere, so can be dropped.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1789 >
2025-02-23 17:46:13 +00:00
Enrico Weigelt, metux IT consult
d973c43810
os: unexport SetCriticalOutputPending()
...
Not used by any drivers/modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1814 >
2025-02-23 17:39:18 +00:00
Enrico Weigelt, metux IT consult
573d70ae25
xwin: don't need NULL check before free()
...
free() is safe against NULL arguments.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1818 >
2025-02-23 17:32:49 +00:00
Enrico Weigelt, metux IT consult
eafec5836a
glamor: don't need NULL check before free()
...
free() is safe against NULL arguments.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1818 >
2025-02-23 17:32:49 +00:00
Enrico Weigelt, metux IT consult
e4e3b69626
Xext: geext: fix regression in SProcGEQueryVersion()
...
Commit 36dd28129b
had an ugly typo
(probably broke on rebase - shame on myself) causing SProcGEQueryVersion()
calling itself recursively. Obviously, ProcGEQueryVersion() needs
to be called instead.
Fixes: 36dd28129b
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1817 >
2025-02-23 17:25:29 +00:00
Enrico Weigelt, metux IT consult
7ca8c1518c
present: need to include <X11/Xfuncproto.h>
...
Some headers making use of X_EXPORT macro, so Xfuncproto.h should be
included explicitly, instead of silently relying any other include
already doing that.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1813 >
2025-02-23 17:18:46 +00:00
Enrico Weigelt, metux IT consult
b55d726a7b
present: need to include dix-config.h
...
dix-config.h always needs to be included first, otherwise things
can get messed up in really obscure ways, eg. certain types silently
changing in size and causing mysterious crashes.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1813 >
2025-02-23 17:18:46 +00:00
Enrico Weigelt, metux IT consult
2e6f3a632b
meson.build: enable VLA warning
...
variable length arrays can be dangerous, so better don't use
them at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
2025-02-20 17:28:05 +01:00
Enrico Weigelt, metux IT consult
b4f0c1abd5
test: sync: don't use VLA
...
The array size is fixed anyways, so we can use a symbol instead
of variable.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
2025-02-20 17:28:01 +01:00
Enrico Weigelt, metux IT consult
f894801fa2
xfree86: modesetting: don't use VLA
...
even through this specific case is correct and safe, it's safer to
remove all VLA usages and forbid them completely by compiler flag.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1819 >
2025-02-20 17:26:49 +01:00
Doug Brown
a0834009cf
dri2: Protect against dri2ClientPrivate assertion failures
...
If DRI2ScreenInit hasn't been called yet, DRI2Authenticate and
DRI2CreateDrawable2 cause the X server to crash. This has been observed
to happen on multiple modern Linux distros in various conditions,
including QEMU and VMware VMs. Make these functions more robust in order
to prevent the crash.
This patch was originally provided by Bernhard Übelacker and expanded
upon by Mark Wagner.
Signed-off-by: Doug Brown <doug@schmorgal.com>
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1053
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1534
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1608 >
2025-02-19 11:25:01 +00:00
Enrico Weigelt, metux IT consult
6c88eb0cc4
misc.h: unexport compare_version()
...
Not used by any external modules, so no need to keep it in public header.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1807 >
2025-02-18 11:17:40 +00:00
Enrico Weigelt, metux IT consult
804b2c081b
os: unexport CloseWellKnownConnections()
...
Not used by any modules, so no need to keep it public.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
0d95b53a20
os: unexport ResetWellKnownSockets()
...
Not used by any modules (and not supposed to be), so should not
be exported at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
dd05532b38
os: unexport CreateWellKnownSockets()
...
Not used by any modules (and not supposed to be), so should not
be exported at all.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
59b39ee6ee
os: unexport NotifyParentProcess()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
c9ee4245a2
os: unexport ResetOsBuffers()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
583dbe832d
os: unexport FlushIfCriticalOutputPending()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
be16616715
os: unexport FlushAllOutput()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
c6b223459c
os: unexport ResetCurrentRequest()
...
Not used by any external modules, so no need to keep it in public API.
Since it's used by DRI, still needs the _X_EXPORT flag, as long as DRI
is a dynamically loaded module.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:45 +00:00
Enrico Weigelt, metux IT consult
189a70dfb2
os: unexport InsertFakeRequest()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
ba665948f6
os: unexport WriteFdToClient()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
effe8d66bd
os: unexport ReadRequestFromClient()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00
Enrico Weigelt, metux IT consult
9b0c3c62f2
os: unexport ListenOnOpenFD()
...
Not used by any modules, so no need to keep it exported.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1790 >
2025-02-18 10:53:44 +00:00