diff --git a/dix/dispatch.c b/dix/dispatch.c index a3a27e462f..d7d5a53d43 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3208,12 +3208,26 @@ ProcCreateCursor(ClientPtr client) int ProcCreateGlyphCursor(ClientPtr client) { + REQUEST(xCreateGlyphCursorReq); + REQUEST_SIZE_MATCH(xCreateGlyphCursorReq); + + if (client->swapped) { + swapl(&stuff->cid); + swapl(&stuff->source); + swapl(&stuff->mask); + swaps(&stuff->sourceChar); + swaps(&stuff->maskChar); + swaps(&stuff->foreRed); + swaps(&stuff->foreGreen); + swaps(&stuff->foreBlue); + swaps(&stuff->backRed); + swaps(&stuff->backGreen); + swaps(&stuff->backBlue); + } + CursorPtr pCursor; int res; - REQUEST(xCreateGlyphCursorReq); - - REQUEST_SIZE_MATCH(xCreateGlyphCursorReq); LEGAL_NEW_RESOURCE(stuff->cid, client); res = AllocGlyphCursor(stuff->source, stuff->sourceChar, diff --git a/dix/swapreq.c b/dix/swapreq.c index 232089e6d5..a6a5d837f7 100644 --- a/dix/swapreq.c +++ b/dix/swapreq.c @@ -642,25 +642,6 @@ SProcCreateCursor(ClientPtr client) return ((*ProcVector[X_CreateCursor]) (client)); } -int _X_COLD -SProcCreateGlyphCursor(ClientPtr client) -{ - REQUEST(xCreateGlyphCursorReq); - REQUEST_SIZE_MATCH(xCreateGlyphCursorReq); - swapl(&stuff->cid); - swapl(&stuff->source); - swapl(&stuff->mask); - swaps(&stuff->sourceChar); - swaps(&stuff->maskChar); - swaps(&stuff->foreRed); - swaps(&stuff->foreGreen); - swaps(&stuff->foreBlue); - swaps(&stuff->backRed); - swaps(&stuff->backGreen); - swaps(&stuff->backBlue); - return ((*ProcVector[X_CreateGlyphCursor]) (client)); -} - int _X_COLD SProcRecolorCursor(ClientPtr client) { diff --git a/dix/swapreq.h b/dix/swapreq.h index c9486f7b55..36bce581f1 100644 --- a/dix/swapreq.h +++ b/dix/swapreq.h @@ -49,7 +49,6 @@ int SProcCopyPlane(ClientPtr client); int SProcCreateColormap(ClientPtr client); int SProcCreateCursor(ClientPtr client); int SProcCreateGC(ClientPtr client); -int SProcCreateGlyphCursor(ClientPtr client); int SProcCreatePixmap(ClientPtr client); int SProcCreateWindow(ClientPtr client); int SProcFillPoly(ClientPtr client); diff --git a/dix/tables.c b/dix/tables.c index 6e94d4bb6b..302e02dac5 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -426,7 +426,7 @@ int (*SwappedProcVector[256]) (ClientPtr /* client */) = { SProcQueryColors, ProcLookupColor, SProcCreateCursor, - SProcCreateGlyphCursor, + ProcCreateGlyphCursor, ProcFreeCursor, /* 95 */ SProcRecolorCursor, SProcQueryBestSize,