diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index 4eaded7268..75ae0eea5a 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -1676,16 +1676,13 @@ ProcRRGetCrtcGamma(ClientPtr client) swapl(&reply.length); swaps(&reply.size); } + WriteToClient(client, sizeof(xRRGetCrtcGammaReply), &reply); if (crtc->gammaSize) { memcpy(extra, crtc->gammaRed, len); - if (client->swapped) - SwapShorts((short*)extra, len/sizeof(CARD16)); + client->pSwapReplyFunc = (ReplySwapPtr) CopySwap16Write; + WriteSwappedDataToClient(client, len, extra); + free(extra); } - - WriteToClient(client, sizeof(xRRGetCrtcGammaReply), &reply); - WriteToClient(client, len, extra); - free(extra); - return Success; }