diff --git a/xkb/xkb.c b/xkb/xkb.c index d6838d408c..f3e631eef1 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -2765,6 +2765,12 @@ ProcXkbGetCompatMap(ClientPtr client) REQUEST(xkbGetCompatMapReq); REQUEST_SIZE_MATCH(xkbGetCompatMapReq); + if (client->swapped) { + swaps(&stuff->deviceSpec); + swaps(&stuff->firstSI); + swaps(&stuff->nSI); + } + if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index a79b1aff3e..ddaa88dd9b 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -228,17 +228,6 @@ SProcXkbSetMap(ClientPtr client) return ProcXkbSetMap(client); } -static int _X_COLD -SProcXkbGetCompatMap(ClientPtr client) -{ - REQUEST(xkbGetCompatMapReq); - REQUEST_SIZE_MATCH(xkbGetCompatMapReq); - swaps(&stuff->deviceSpec); - swaps(&stuff->firstSI); - swaps(&stuff->nSI); - return ProcXkbGetCompatMap(client); -} - static int _X_COLD SProcXkbSetCompatMap(ClientPtr client) { @@ -411,7 +400,7 @@ SProcXkbDispatch(ClientPtr client) case X_kbSetMap: return SProcXkbSetMap(client); case X_kbGetCompatMap: - return SProcXkbGetCompatMap(client); + return ProcXkbGetCompatMap(client); case X_kbSetCompatMap: return SProcXkbSetCompatMap(client); case X_kbGetIndicatorState: