From 87ba2ad61af67b4d01488b89c43e6ae485568574 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Thu, 3 Apr 2025 17:05:19 +0200 Subject: [PATCH] 1 --- dix/swaprep.c | 10 -- dix/tables.c | 313 ++++++++++++-------------------------------- include/dix.h | 5 +- include/dixstruct.h | 5 - 4 files changed, 87 insertions(+), 246 deletions(-) diff --git a/dix/swaprep.c b/dix/swaprep.c index aca971d902..ecd167b907 100644 --- a/dix/swaprep.c +++ b/dix/swaprep.c @@ -1059,13 +1059,3 @@ WriteSConnSetupPrefix(ClientPtr pClient, xConnSetupPrefix * pcsp) SwapConnSetupPrefix(pcsp, &cspT); WriteToClient(pClient, sizeof(cspT), &cspT); } - -/* - * Dummy entry for ReplySwapVector[] - */ - -void _X_COLD -ReplyNotSwappd(ClientPtr pClient, int size, void *pbuf) -{ - FatalError("Not implemented"); -} diff --git a/dix/tables.c b/dix/tables.c index 7b9857ada6..920841ef80 100644 --- a/dix/tables.c +++ b/dix/tables.c @@ -716,260 +716,115 @@ EventSwapPtr EventSwapVector[MAXEVENTS] = { }; ReplySwapPtr ReplySwapVector[256] = { - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, + NULL, (ReplySwapPtr) SGetWindowAttributesReply, - ReplyNotSwappd, - ReplyNotSwappd, /* 5 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 10 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, /* 5 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 10 */ + NULL, + NULL, + NULL, + NULL, (ReplySwapPtr) SQueryTreeReply, /* 15 */ (ReplySwapPtr) SInternAtomReply, (ReplySwapPtr) SGetAtomNameReply, - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, (ReplySwapPtr) SGetPropertyReply, /* 20 */ (ReplySwapPtr) SListPropertiesReply, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 25 */ + NULL, + NULL, + NULL, + NULL, /* 25 */ (ReplySwapPtr) SGenericReply, /* SGrabPointerReply, */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 30 */ + NULL, + NULL, + NULL, + NULL, /* 30 */ (ReplySwapPtr) SGenericReply, /* SGrabKeyboardReply, */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 35 */ - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, + NULL, + NULL, /* 35 */ + NULL, + NULL, (ReplySwapPtr) SQueryPointerReply, - ReplyNotSwappd, - ReplyNotSwappd, /* 40 */ - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, /* 40 */ + NULL, + NULL, (ReplySwapPtr) SGetInputFocusReply, (ReplySwapPtr) SQueryKeymapReply, - ReplyNotSwappd, /* 45 */ - ReplyNotSwappd, + NULL, /* 45 */ + NULL, (ReplySwapPtr) SQueryFontReply, (ReplySwapPtr) SQueryTextExtentsReply, (ReplySwapPtr) SListFontsReply, (ReplySwapPtr) SListFontsWithInfoReply, /* 50 */ - ReplyNotSwappd, + NULL, (ReplySwapPtr) SGetFontPathReply, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 55 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 60 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 65 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 70 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 75 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 80 */ - ReplyNotSwappd, - ReplyNotSwappd, + NULL, + NULL, + NULL, /* 55 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 60 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 65 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 70 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 75 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 80 */ + NULL, + NULL, (ReplySwapPtr) SListInstalledColormapsReply, (ReplySwapPtr) SAllocColorReply, (ReplySwapPtr) SAllocNamedColorReply, /* 85 */ (ReplySwapPtr) SAllocColorCellsReply, (ReplySwapPtr) SAllocColorPlanesReply, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 90 */ + NULL, + NULL, + NULL, /* 90 */ (ReplySwapPtr) SQueryColorsReply, (ReplySwapPtr) SLookupColorReply, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 95 */ - ReplyNotSwappd, + NULL, + NULL, + NULL, /* 95 */ + NULL, (ReplySwapPtr) SQueryBestSizeReply, (ReplySwapPtr) SGenericReply, /* SQueryExtensionReply, */ (ReplySwapPtr) SListExtensionsReply, - ReplyNotSwappd, /* 100 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 105 */ - ReplyNotSwappd, - ReplyNotSwappd, + NULL, /* 100 */ + NULL, + NULL, + NULL, + NULL, + NULL, /* 105 */ + NULL, + NULL, (ReplySwapPtr) SGetScreenSaverReply, - ReplyNotSwappd, - (ReplySwapPtr) SListHostsReply, /* 110 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 115 */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, /* 119 */ - ReplyNotSwappd, /* 120 */ - ReplyNotSwappd, /* 121 */ - ReplyNotSwappd, /* 122 */ - ReplyNotSwappd, /* 123 */ - ReplyNotSwappd, /* 124 */ - ReplyNotSwappd, /* 125 */ - ReplyNotSwappd, /* 126 */ - ReplyNotSwappd, /* NoOperation */ - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd, - ReplyNotSwappd + NULL, + (ReplySwapPtr) SListHostsReply }; diff --git a/include/dix.h b/include/dix.h index c228c08a2a..947eca88f0 100644 --- a/include/dix.h +++ b/include/dix.h @@ -94,7 +94,8 @@ SOFTWARE. #define WriteReplyToClient(pClient, size, pReply) \ do { \ - if ((pClient)->swapped) \ + if ((pClient->swapped) && \ + ReplySwapVector[((xReq *)pClient->requestBuffer)->reqType]) \ (*ReplySwapVector[((xReq *)(pClient)->requestBuffer)->reqType]) \ (pClient, (int)(size), pReply); \ else \ @@ -103,7 +104,7 @@ SOFTWARE. #define WriteSwappedDataToClient(pClient, size, pbuf) \ do { \ - if ((pClient)->swapped) \ + if (pClient->swapped && pClient->pSwapReplyFunc) \ (*(pClient)->pSwapReplyFunc)(pClient, (int)(size), pbuf); \ else \ WriteToClient(pClient, (int)(size), (pbuf)); \ diff --git a/include/dixstruct.h b/include/dixstruct.h index 66f6081b0b..01ccca774b 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -50,11 +50,6 @@ typedef void (*ReplySwapPtr) (ClientPtr /* pClient */ , int /* size */ , void * /* pbuf */ ); -extern _X_EXPORT void -ReplyNotSwappd(ClientPtr /* pClient */ , - int /* size */ , - void * /* pbuf */ ) _X_NORETURN; - typedef enum { ClientStateInitial, ClientStateRunning, ClientStateRetained,