diff --git a/xkb/xkb.c b/xkb/xkb.c index 0c8ca1cf8c..b75503a027 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -3042,13 +3042,19 @@ _XkbSetCompatMap(ClientPtr client, DeviceIntPtr dev, int ProcXkbSetCompatMap(ClientPtr client) { + REQUEST(xkbSetCompatMapReq); + REQUEST_AT_LEAST_SIZE(xkbSetCompatMapReq); + + if (client->swapped) { + swaps(&stuff->deviceSpec); + swaps(&stuff->firstSI); + swaps(&stuff->nSI); + } + DeviceIntPtr dev; char *data; int rc; - REQUEST(xkbSetCompatMapReq); - REQUEST_AT_LEAST_SIZE(xkbSetCompatMapReq); - if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index 83469ed97c..b97418fab3 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -118,17 +118,6 @@ SProcXkbSelectEvents(ClientPtr client) return ProcXkbSelectEvents(client); } -static int _X_COLD -SProcXkbSetCompatMap(ClientPtr client) -{ - REQUEST(xkbSetCompatMapReq); - REQUEST_AT_LEAST_SIZE(xkbSetCompatMapReq); - swaps(&stuff->deviceSpec); - swaps(&stuff->firstSI); - swaps(&stuff->nSI); - return ProcXkbSetCompatMap(client); -} - static int _X_COLD SProcXkbGetKbdByName(ClientPtr client) { @@ -166,7 +155,7 @@ SProcXkbDispatch(ClientPtr client) case X_kbGetCompatMap: return ProcXkbGetCompatMap(client); case X_kbSetCompatMap: - return SProcXkbSetCompatMap(client); + return ProcXkbSetCompatMap(client); case X_kbGetIndicatorState: return ProcXkbGetIndicatorState(client); case X_kbGetIndicatorMap: