Commit Graph

19401 Commits

Author SHA1 Message Date
Enrico Weigelt, metux IT consult
dcad41bc47 (!1794) randr: RRCreateProviderProperty(): use calloc()
We can rely on everything being cleared. And usually even faster, as the
compiler can emit optimized instructions for clearing a whole block at once.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e386e8f6ee (!1794) randr: RROutputCreate(): use calloc()
We can rely on everything being cleared. And usually even faster, as the
compiler can emit optimized instructions for clearing a whole block at once.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
3e3efc3e88 (!1794) randr: ProcRRGetMonitors(): collect reply payload in temporary buffer
Instead of arbitrary count of individual WriteToClient() calls on small
chunks, collect the whole payload in a buffer and write it out all at once.

This also makes possible to use generic macros for reply sending, as well
as further simplifications in the write-out path.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
b3dba74152 (!1794) randr: ProcRRGetMonitors() use SwapLongs instead of callbacks
WriteSwappedDataToClient() calls a callback on each single field.
We can have it easier and more efficient by just using SwapLongs()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
f9c4bbe99e (!1794) randr: ProcRRGetCrtcTransform(): split reply header and payload
Using struct initializer for the reply header and only allocating the
payload on heap. This allows using generic macros for reply preparation
and send-out later.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
5bc1f4f2e3 (!1794) randr: ProcRRGetCrtcInfo(): use locally scoped variables
Improve readability by moving the variables into local scopes.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
47e9665205 (!1794) 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>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
be10bbf470 (!1794) 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>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
d92bd5b620 (!1794) 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>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
b1f8ba81c4 (!1794) 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.

As collateral benefit, getting a tiny bit better performance.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
652373e148 (!1794) 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>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0e6c801f10 (!1796) dri3: simplify dispatcher
The dispatcher functions are much more complex than they're usually are
(just switch/case statement). Bring them in line with the standard scheme
used in the Xserver, so further steps become easier.

It's also much cleaner to use the defines from proto headers instead of
raw numbers.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
b541e3a24d (!1796) dri3: consolidate reply buffers
Allocate reply buffers on stack and put multiple fragments into one buffer,
in order to make it easier doing write out by generic macros, in subsequent
commits.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
baf62a8187 (!1796) dri3: use static reply struct init on declaration
Make the code a bit easier to read by using initialization of the reply
structs, at the point of declaration. Most of them aren't written to later,
just passed into WriteReplyToClient(). Also dropping some useless zero
assignments (struct initializers automatically zero-out unmentioned fields).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c4b446946c (!1799) xkb: unexport XkbCopyControls()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c03d84c571 (!1799) xkb: unexport XkbDeviceApplyKeymap()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e30c513758 (!1799) xkb: unexport XkbSendNewKeyboardNotify()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
9d86ba0d88 (!1799) xkb: unexport XkbApplyVirtualModChanges()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
83451b9dd1 (!1799) xkb: unexport XkbApplyCompatMapToKey()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
be3d7a9806 (!1799) xkb: unexport XkbKeyTypesForCoreSymbols()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
5982df023d (!1799) xkb: unexport XkbChangeTypesOfKey()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
a572e12215 (!1799) xkb: unexport XkbFreeInfo()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
34bd1e2980 (!1799) xkb: unexport XkbChangeKeycodeRange()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
b86b46dfec (!1799) xkb: unexport XkbConvertCase()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
7e3257ebc6 (!1799) xkb: unexport XkbLookupNamedGeometry()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
cdc623b6d1 (!1799) xkb: unexport XkbSetRepeatKeys()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
2e87bcd71c (!1799) xkb: unexport XkbDisableComputedAutoRepeats()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
ac246d6196 (!1799) xkb: unexport XkbEnableDisableControls()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
41f8a42b92 (!1799) xkb: unexport XkbProcessKeyboardEvent()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0596c19a1d (!1799) xkb: unexport XkbHandleActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e3334352c4 (!1799) xkb: unexport XkbHandleBell()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
5cbcaffd56 (!1799) xkb: unexport XkbStateChangedFlags()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
99c09f3fdc (!1799) xkb: unexport XkbCheckIndicatorMaps()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
c309713e5f (!1799) xkb: unexport XkbCheckSecondaryEffects()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
2b7137fe75 (!1799) xkb: unexport XkbComputeDerivedState()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0cdf9c176e (!1799) xkb: unexport XkbIndicatorsToUpdate()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
83bec8b13c (!1799) xkb: unexport XkbUpdateAllDeviceIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
254e1d3c47 (!1799) xkb: unexport XkbUpdateIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
311c7565a2 (!1799) xkb: unexport XkbSetIndicators()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
6c86b9335e (!1799) xkb: unexport XkbGetCoreMap()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
1a26bd1656 (!1799) xkb: unexport XkbUpdateActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
d974ee07d0 (!1799) xkb: unexport XkbUpdateDescActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
a39321df72 (!1799) xkb: unexport XkbResizeKeyActions()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
8c4bec0ff9 (!1799) xkb: unexport XkbResizeKeySyms()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
0852efe3c6 (!1799) xkb: unexport XkbAdjustGroup()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
eaae34a232 (!1799) xkb: unexport XkbVirtualModsToReal()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
e7d08cdfc2 (!1799) xkb: unexport XkbMaskForVMask()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
4959e322e6 (!1799) xkb: unexport XkbSetActionKeyMods()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
05db19c642 (!1799) xkb: unexport XkbFreeComponentNames()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00
Enrico Weigelt, metux IT consult
2fab2986a1 (!1799) xkb: unexport XkbResizeKeyType()
Not used by any drivers, so no need to keep it exported.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
2025-02-19 20:01:55 +01:00