randr: fix wrong call to RRGetScreenResources() in swapped case

ProcRRGetScreenResources() vs. RRGetScreenResourcesCurrent() have different
semantics - this also must be followed in byte-swapped case.

Fixes: fc70839431 - Add server support for RRGetScreenResourcesCurrent
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1630>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-07-29 15:01:08 +02:00 committed by Marge Bot
parent 73cf8d3560
commit b87314c876

View File

@ -115,6 +115,17 @@ SProcRRGetScreenResources(ClientPtr client)
return (*ProcRandrVector[stuff->randrReqType]) (client);
}
static int _X_COLD
SProcRRGetScreenResourcesCurrent(ClientPtr client)
{
REQUEST(xRRGetScreenResourcesCurrentReq);
REQUEST_SIZE_MATCH(xRRGetScreenResourcesCurrentReq);
swaps(&stuff->length);
swapl(&stuff->window);
return (*ProcRandrVector[stuff->randrReqType]) (client);
}
static int _X_COLD
SProcRRGetOutputInfo(ClientPtr client)
{
@ -667,7 +678,7 @@ int (*SProcRandrVector[RRNumberRequests]) (ClientPtr) = {
SProcRRGetCrtcGamma, /* 23 */
SProcRRSetCrtcGamma, /* 24 */
/* V1.3 additions */
SProcRRGetScreenResources, /* 25 GetScreenResourcesCurrent */
SProcRRGetScreenResourcesCurrent, /* 25 */
SProcRRSetCrtcTransform, /* 26 */
SProcRRGetCrtcTransform, /* 27 */
SProcRRGetPanning, /* 28 */