Xi: inline SProcXISelectEvents() and SProcXIGetSelectedEvents()

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-09-25 16:13:35 +02:00
committed by Enrico Weigelt
parent 0fbb681fce
commit d7eac08a22
5 changed files with 30 additions and 50 deletions

View File

@@ -444,7 +444,7 @@ SProcIDispatch(ClientPtr client)
case X_XIGetClientPointer:
return ProcXIGetClientPointer(client);
case X_XISelectEvents:
return SProcXISelectEvents(client);
return ProcXISelectEvents(client);
case X_XIQueryVersion:
return ProcXIQueryVersion(client);
case X_XIQueryDevice:
@@ -472,7 +472,7 @@ SProcIDispatch(ClientPtr client)
case X_XIGetProperty:
return ProcXIGetProperty(client);
case X_XIGetSelectedEvents:
return SProcXIGetSelectedEvents(client);
return ProcXIGetSelectedEvents(client);
case X_XIBarrierReleasePointer:
return ProcXIBarrierReleasePointer(client);
default:

View File

@@ -69,7 +69,4 @@ int ProcXUngrabDeviceButton(ClientPtr client);
int ProcXUngrabDevice(ClientPtr client);
int ProcXUngrabDeviceKey(ClientPtr client);
int SProcXIGetSelectedEvents(ClientPtr client);
int SProcXISelectEvents(ClientPtr client);
#endif /* _XSERVER_XI_HANDLERS_H */

View File

@@ -113,42 +113,32 @@ XICheckInvalidMaskBits(ClientPtr client, unsigned char *mask, int len)
return Success;
}
int _X_COLD
SProcXISelectEvents(ClientPtr client)
{
int i;
int len;
xXIEventMask *evmask;
REQUEST(xXISelectEventsReq);
REQUEST_AT_LEAST_SIZE(xXISelectEventsReq);
swapl(&stuff->win);
swaps(&stuff->num_masks);
len = client->req_len - bytes_to_int32(sizeof(xXISelectEventsReq));
evmask = (xXIEventMask *) &stuff[1];
for (i = 0; i < stuff->num_masks; i++) {
if (len < bytes_to_int32(sizeof(xXIEventMask)))
return BadLength;
len -= bytes_to_int32(sizeof(xXIEventMask));
swaps(&evmask->deviceid);
swaps(&evmask->mask_len);
if (len < evmask->mask_len)
return BadLength;
len -= evmask->mask_len;
evmask =
(xXIEventMask *) (((char *) &evmask[1]) + evmask->mask_len * 4);
}
return (ProcXISelectEvents(client));
}
int
ProcXISelectEvents(ClientPtr client)
{
REQUEST(xXISelectEventsReq);
REQUEST_AT_LEAST_SIZE(xXISelectEventsReq);
if (client->swapped) {
swapl(&stuff->win);
swaps(&stuff->num_masks);
int len = client->req_len - bytes_to_int32(sizeof(xXISelectEventsReq));
xXIEventMask *evmask = (xXIEventMask *) &stuff[1];
for (int i = 0; i < stuff->num_masks; i++) {
if (len < bytes_to_int32(sizeof(xXIEventMask)))
return BadLength;
len -= bytes_to_int32(sizeof(xXIEventMask));
swaps(&evmask->deviceid);
swaps(&evmask->mask_len);
if (len < evmask->mask_len)
return BadLength;
len -= evmask->mask_len;
evmask =
(xXIEventMask *) (((char *) &evmask[1]) + evmask->mask_len * 4);
}
}
if (stuff->num_masks == 0)
return BadValue;
@@ -327,28 +317,21 @@ ProcXISelectEvents(ClientPtr client)
return Success;
}
int _X_COLD
SProcXIGetSelectedEvents(ClientPtr client)
{
REQUEST(xXIGetSelectedEventsReq);
REQUEST_SIZE_MATCH(xXIGetSelectedEventsReq);
swapl(&stuff->win);
return (ProcXIGetSelectedEvents(client));
}
int
ProcXIGetSelectedEvents(ClientPtr client)
{
REQUEST(xXIGetSelectedEventsReq);
REQUEST_SIZE_MATCH(xXIGetSelectedEventsReq);
if (client->swapped)
swapl(&stuff->win);
int rc, i;
WindowPtr win;
OtherInputMasks *masks;
InputClientsPtr others = NULL;
DeviceIntPtr dev;
REQUEST(xXIGetSelectedEventsReq);
REQUEST_SIZE_MATCH(xXIGetSelectedEventsReq);
rc = dixLookupWindow(&win, stuff->win, client, DixGetAttrAccess);
if (rc != Success)
return rc;

View File

@@ -151,7 +151,7 @@ request_XIGetSelectedEvents(xXIGetSelectedEventsReq * req, int error)
*/
swapl(&req->win);
rc = SProcXIGetSelectedEvents(&client);
rc = ProcXIGetSelectedEvents(&client);
assert(rc == error);
}

View File

@@ -121,7 +121,7 @@ request_XISelectEvent(xXISelectEventsReq * req, int error)
swapl(&req->win);
swaps(&req->num_masks);
rc = SProcXISelectEvents(&client);
rc = ProcXISelectEvents(&client);
assert(rc == error);
}