diff --git a/xkb/xkb.c b/xkb/xkb.c index 4e2f9028a6..5be1368e1a 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -1377,6 +1377,13 @@ ProcXkbGetMap(ClientPtr client) REQUEST(xkbGetMapReq); REQUEST_SIZE_MATCH(xkbGetMapReq); + if (client->swapped) { + swaps(&stuff->deviceSpec); + swaps(&stuff->full); + swaps(&stuff->partial); + swaps(&stuff->virtualMods); + } + if (!(client->xkbClientFlags & _XkbClientInitialized)) return BadAccess; diff --git a/xkb/xkbSwap.c b/xkb/xkbSwap.c index 3dd44ee0c5..2de96952cb 100644 --- a/xkb/xkbSwap.c +++ b/xkb/xkbSwap.c @@ -202,18 +202,6 @@ SProcXkbSetControls(ClientPtr client) return ProcXkbSetControls(client); } -static int _X_COLD -SProcXkbGetMap(ClientPtr client) -{ - REQUEST(xkbGetMapReq); - REQUEST_SIZE_MATCH(xkbGetMapReq); - swaps(&stuff->deviceSpec); - swaps(&stuff->full); - swaps(&stuff->partial); - swaps(&stuff->virtualMods); - return ProcXkbGetMap(client); -} - static int _X_COLD SProcXkbSetMap(ClientPtr client) { @@ -352,7 +340,7 @@ SProcXkbDispatch(ClientPtr client) case X_kbSetControls: return SProcXkbSetControls(client); case X_kbGetMap: - return SProcXkbGetMap(client); + return ProcXkbGetMap(client); case X_kbSetMap: return SProcXkbSetMap(client); case X_kbGetCompatMap: