diff --git a/xkb/xkb.c b/xkb/xkb.c index 55544138f0..29e8b4e425 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -5514,15 +5514,20 @@ GetComponentSpec(ClientPtr client, xkbGetKbdByNameReq *stuff, int ProcXkbListComponents(ClientPtr client) { + REQUEST(xkbListComponentsReq); + REQUEST_AT_LEAST_SIZE(xkbListComponentsReq); + + if (client->swapped) { + swaps(&stuff->deviceSpec); + swaps(&stuff->maxNames); + } + DeviceIntPtr dev; unsigned len; unsigned char *str; uint8_t size; int i; - REQUEST(xkbListComponentsReq); - REQUEST_AT_LEAST_SIZE(xkbListComponentsReq); - if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index d0c21e9d05..b6962ccab7 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -352,16 +352,6 @@ SProcXkbPerClientFlags(ClientPtr client) return ProcXkbPerClientFlags(client); } -static int _X_COLD -SProcXkbListComponents(ClientPtr client) -{ - REQUEST(xkbListComponentsReq); - REQUEST_AT_LEAST_SIZE(xkbListComponentsReq); - swaps(&stuff->deviceSpec); - swaps(&stuff->maxNames); - return ProcXkbListComponents(client); -} - static int _X_COLD SProcXkbGetKbdByName(ClientPtr client) { @@ -457,7 +447,7 @@ SProcXkbDispatch(ClientPtr client) case X_kbPerClientFlags: return SProcXkbPerClientFlags(client); case X_kbListComponents: - return SProcXkbListComponents(client); + return ProcXkbListComponents(client); case X_kbGetKbdByName: return SProcXkbGetKbdByName(client); case X_kbGetDeviceInfo: