diff --git a/xfixes/cursor.c b/xfixes/cursor.c index 8910b7b69..3d4c3381b 100644 --- a/xfixes/cursor.c +++ b/xfixes/cursor.c @@ -296,7 +296,7 @@ SProcXFixesSelectCursorInput(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesSelectCursorInputReq); swapl(&stuff->window); swapl(&stuff->eventMask); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSelectCursorInput(client); } void _X_COLD @@ -412,7 +412,7 @@ int _X_COLD SProcXFixesGetCursorImage(ClientPtr client) { REQUEST(xXFixesGetCursorImageReq); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesGetCursorImage(client); } int @@ -442,7 +442,7 @@ SProcXFixesSetCursorName(ClientPtr client) REQUEST_AT_LEAST_SIZE(xXFixesSetCursorNameReq); swapl(&stuff->cursor); swaps(&stuff->nbytes); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetCursorName(client); } int @@ -488,7 +488,7 @@ SProcXFixesGetCursorName(ClientPtr client) REQUEST(xXFixesGetCursorNameReq); REQUEST_SIZE_MATCH(xXFixesGetCursorNameReq); swapl(&stuff->cursor); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesGetCursorName(client); } int @@ -564,7 +564,7 @@ int _X_COLD SProcXFixesGetCursorImageAndName(ClientPtr client) { REQUEST(xXFixesGetCursorImageAndNameReq); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesGetCursorImageAndName(client); } /* @@ -693,7 +693,7 @@ SProcXFixesChangeCursor(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesChangeCursorReq); swapl(&stuff->source); swapl(&stuff->destination); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesChangeCursor(client); } static Bool @@ -730,7 +730,7 @@ SProcXFixesChangeCursorByName(ClientPtr client) REQUEST_AT_LEAST_SIZE(xXFixesChangeCursorByNameReq); swapl(&stuff->source); swaps(&stuff->nbytes); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesChangeCursorByName(client); } /* @@ -886,7 +886,7 @@ SProcXFixesHideCursor(ClientPtr client) REQUEST(xXFixesHideCursorReq); REQUEST_SIZE_MATCH(xXFixesHideCursorReq); swapl(&stuff->window); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesHideCursor(client); } int @@ -934,7 +934,7 @@ SProcXFixesShowCursor(ClientPtr client) REQUEST(xXFixesShowCursorReq); REQUEST_SIZE_MATCH(xXFixesShowCursorReq); swapl(&stuff->window); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesShowCursor(client); } static int @@ -1020,7 +1020,7 @@ SProcXFixesCreatePointerBarrier(ClientPtr client) swaps(in_devices + i); } - return ProcXFixesVector[stuff->xfixesReqType] (client); + return ProcXFixesCreatePointerBarrier(client); } int @@ -1039,7 +1039,7 @@ SProcXFixesDestroyPointerBarrier(ClientPtr client) REQUEST(xXFixesDestroyPointerBarrierReq); REQUEST_SIZE_MATCH(xXFixesDestroyPointerBarrierReq); swapl(&stuff->barrier); - return ProcXFixesVector[stuff->xfixesReqType] (client); + return ProcXFixesDestroyPointerBarrier(client); } Bool diff --git a/xfixes/disconnect.c b/xfixes/disconnect.c index 937d6a4be..173908d80 100644 --- a/xfixes/disconnect.c +++ b/xfixes/disconnect.c @@ -80,7 +80,7 @@ SProcXFixesSetClientDisconnectMode(ClientPtr client) swapl(&stuff->disconnect_mode); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetClientDisconnectMode(client); } int @@ -112,7 +112,7 @@ SProcXFixesGetClientDisconnectMode(ClientPtr client) REQUEST(xXFixesGetClientDisconnectModeReq); REQUEST_SIZE_MATCH(xXFixesGetClientDisconnectModeReq); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesGetClientDisconnectMode(client); } Bool diff --git a/xfixes/region.c b/xfixes/region.c index 64547f855..d108e60b2 100644 --- a/xfixes/region.c +++ b/xfixes/region.c @@ -98,7 +98,7 @@ SProcXFixesCreateRegion(ClientPtr client) REQUEST_AT_LEAST_SIZE(xXFixesCreateRegionReq); swapl(&stuff->region); SwapRestS(stuff); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCreateRegion(client); } int @@ -140,7 +140,7 @@ SProcXFixesCreateRegionFromBitmap(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesCreateRegionFromBitmapReq); swapl(&stuff->region); swapl(&stuff->bitmap); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCreateRegionFromBitmap(client); } int @@ -197,7 +197,7 @@ SProcXFixesCreateRegionFromWindow(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesCreateRegionFromWindowReq); swapl(&stuff->region); swapl(&stuff->window); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCreateRegionFromWindow(client); } int @@ -238,7 +238,7 @@ SProcXFixesCreateRegionFromGC(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesCreateRegionFromGCReq); swapl(&stuff->region); swapl(&stuff->gc); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCreateRegionFromGC(client); } int @@ -278,7 +278,7 @@ SProcXFixesCreateRegionFromPicture(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesCreateRegionFromPictureReq); swapl(&stuff->region); swapl(&stuff->picture); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCreateRegionFromPicture(client); } int @@ -299,7 +299,7 @@ SProcXFixesDestroyRegion(ClientPtr client) REQUEST(xXFixesDestroyRegionReq); REQUEST_SIZE_MATCH(xXFixesDestroyRegionReq); swapl(&stuff->region); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesDestroyRegion(client); } int @@ -336,7 +336,7 @@ SProcXFixesSetRegion(ClientPtr client) REQUEST_AT_LEAST_SIZE(xXFixesSetRegionReq); swapl(&stuff->region); SwapRestS(stuff); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetRegion(client); } int @@ -363,7 +363,7 @@ SProcXFixesCopyRegion(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesCopyRegionReq); swapl(&stuff->source); swapl(&stuff->destination); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCopyRegion(client); } int @@ -404,7 +404,7 @@ SProcXFixesCombineRegion(ClientPtr client) swapl(&stuff->source1); swapl(&stuff->source2); swapl(&stuff->destination); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesCombineRegion(client); } int @@ -449,7 +449,7 @@ SProcXFixesInvertRegion(ClientPtr client) swaps(&stuff->width); swaps(&stuff->height); swapl(&stuff->destination); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesInvertRegion(client); } int @@ -474,7 +474,7 @@ SProcXFixesTranslateRegion(ClientPtr client) swapl(&stuff->region); swaps(&stuff->dx); swaps(&stuff->dy); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesTranslateRegion(client); } int @@ -500,7 +500,7 @@ SProcXFixesRegionExtents(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesRegionExtentsReq); swapl(&stuff->source); swapl(&stuff->destination); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesRegionExtents(client); } int @@ -562,7 +562,7 @@ SProcXFixesFetchRegion(ClientPtr client) REQUEST(xXFixesFetchRegionReq); REQUEST_SIZE_MATCH(xXFixesFetchRegionReq); swapl(&stuff->region); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesFetchRegion(client); } static int @@ -622,7 +622,7 @@ SProcXFixesSetGCClipRegion(ClientPtr client) swapl(&stuff->region); swaps(&stuff->xOrigin); swaps(&stuff->yOrigin); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetGCClipRegion(client); } typedef RegionPtr (*CreateDftPtr) (WindowPtr pWin); @@ -723,7 +723,7 @@ SProcXFixesSetWindowShapeRegion(ClientPtr client) swaps(&stuff->xOff); swaps(&stuff->yOff); swapl(&stuff->region); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetWindowShapeRegion(client); } static int @@ -770,7 +770,7 @@ SProcXFixesSetPictureClipRegion(ClientPtr client) swapl(&stuff->region); swaps(&stuff->xOrigin); swaps(&stuff->yOrigin); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSetPictureClipRegion(client); } int @@ -823,7 +823,7 @@ SProcXFixesExpandRegion(ClientPtr client) swaps(&stuff->right); swaps(&stuff->top); swaps(&stuff->bottom); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesExpandRegion(client); } #ifdef XINERAMA diff --git a/xfixes/saveset.c b/xfixes/saveset.c index 145c146df..11d5ea480 100644 --- a/xfixes/saveset.c +++ b/xfixes/saveset.c @@ -65,5 +65,5 @@ SProcXFixesChangeSaveSet(ClientPtr client) REQUEST_SIZE_MATCH(xXFixesChangeSaveSetReq); swapl(&stuff->window); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesChangeSaveSet(client); } diff --git a/xfixes/select.c b/xfixes/select.c index 665a288aa..3ed7d8c76 100644 --- a/xfixes/select.c +++ b/xfixes/select.c @@ -206,7 +206,7 @@ SProcXFixesSelectSelectionInput(ClientPtr client) swapl(&stuff->window); swapl(&stuff->selection); swapl(&stuff->eventMask); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesSelectSelectionInput(client); } void _X_COLD diff --git a/xfixes/xfixes.c b/xfixes/xfixes.c index fee845709..9aded01ce 100644 --- a/xfixes/xfixes.c +++ b/xfixes/xfixes.c @@ -108,56 +108,99 @@ static const int version_requests[] = { X_XFixesGetClientDisconnectMode, /* Version 6 */ }; -int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = { -/*************** Version 1 ******************/ - ProcXFixesQueryVersion, - ProcXFixesChangeSaveSet, - ProcXFixesSelectSelectionInput, - ProcXFixesSelectCursorInput, ProcXFixesGetCursorImage, -/*************** Version 2 ******************/ - ProcXFixesCreateRegion, - ProcXFixesCreateRegionFromBitmap, - ProcXFixesCreateRegionFromWindow, - ProcXFixesCreateRegionFromGC, - ProcXFixesCreateRegionFromPicture, - ProcXFixesDestroyRegion, - ProcXFixesSetRegion, - ProcXFixesCopyRegion, - ProcXFixesCombineRegion, - ProcXFixesCombineRegion, - ProcXFixesCombineRegion, - ProcXFixesInvertRegion, - ProcXFixesTranslateRegion, - ProcXFixesRegionExtents, - ProcXFixesFetchRegion, - ProcXFixesSetGCClipRegion, - ProcXFixesSetWindowShapeRegion, - ProcXFixesSetPictureClipRegion, - ProcXFixesSetCursorName, - ProcXFixesGetCursorName, - ProcXFixesGetCursorImageAndName, - ProcXFixesChangeCursor, ProcXFixesChangeCursorByName, -/*************** Version 3 ******************/ - ProcXFixesExpandRegion, -/*************** Version 4 ****************/ - ProcXFixesHideCursor, ProcXFixesShowCursor, -/*************** Version 5 ****************/ - ProcXFixesCreatePointerBarrier, ProcXFixesDestroyPointerBarrier, -/*************** Version 6 ****************/ - ProcXFixesSetClientDisconnectMode, ProcXFixesGetClientDisconnectMode, -}; - static int ProcXFixesDispatch(ClientPtr client) { - REQUEST(xXFixesReq); + REQUEST(xReq); XFixesClientPtr pXFixesClient = GetXFixesClient(client); if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests)) return BadRequest; - if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version]) + if (stuff->data > version_requests[pXFixesClient->major_version]) return BadRequest; - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + + switch (stuff->data) { + /*************** Version 1 ******************/ + case X_XFixesQueryVersion: + return ProcXFixesQueryVersion(client); + case X_XFixesChangeSaveSet: + return ProcXFixesChangeSaveSet(client); + case X_XFixesSelectSelectionInput: + return ProcXFixesSelectSelectionInput(client); + case X_XFixesSelectCursorInput: + return ProcXFixesSelectCursorInput(client); + case X_XFixesGetCursorImage: + return ProcXFixesGetCursorImage(client); + + /*************** Version 2 ******************/ + case X_XFixesCreateRegion: + return ProcXFixesCreateRegion(client); + case X_XFixesCreateRegionFromBitmap: + return ProcXFixesCreateRegionFromBitmap(client); + case X_XFixesCreateRegionFromWindow: + return ProcXFixesCreateRegionFromWindow(client); + case X_XFixesCreateRegionFromGC: + return ProcXFixesCreateRegionFromGC(client); + case X_XFixesCreateRegionFromPicture: + return ProcXFixesCreateRegionFromPicture(client); + case X_XFixesDestroyRegion: + return ProcXFixesDestroyRegion(client); + case X_XFixesSetRegion: + return ProcXFixesSetRegion(client); + case X_XFixesCopyRegion: + return ProcXFixesCopyRegion(client); + case X_XFixesUnionRegion: + return ProcXFixesCombineRegion(client); + case X_XFixesIntersectRegion: + return ProcXFixesCombineRegion(client); + case X_XFixesSubtractRegion: + return ProcXFixesCombineRegion(client); + case X_XFixesInvertRegion: + return ProcXFixesInvertRegion(client); + case X_XFixesTranslateRegion: + return ProcXFixesTranslateRegion(client); + case X_XFixesRegionExtents: + return ProcXFixesRegionExtents(client); + case X_XFixesFetchRegion: + return ProcXFixesFetchRegion(client); + case X_XFixesSetGCClipRegion: + return ProcXFixesSetGCClipRegion(client); + case X_XFixesSetWindowShapeRegion: + return ProcXFixesSetWindowShapeRegion(client); + case X_XFixesSetPictureClipRegion: + return ProcXFixesSetPictureClipRegion(client); + case X_XFixesSetCursorName: + return ProcXFixesSetCursorName(client); + case X_XFixesGetCursorName: + return ProcXFixesGetCursorName(client); + case X_XFixesGetCursorImageAndName: + return ProcXFixesGetCursorImageAndName(client); + case X_XFixesChangeCursor: + return ProcXFixesChangeCursor(client); + case X_XFixesChangeCursorByName: + return ProcXFixesChangeCursorByName(client); + + /*************** Version 3 ******************/ + case X_XFixesExpandRegion: + return ProcXFixesExpandRegion(client); + /*************** Version 4 ******************/ + case X_XFixesHideCursor: + return ProcXFixesHideCursor(client); + case X_XFixesShowCursor: + return ProcXFixesShowCursor(client); + /*************** Version 5 ******************/ + case X_XFixesCreatePointerBarrier: + return ProcXFixesCreatePointerBarrier(client); + case X_XFixesDestroyPointerBarrier: + return ProcXFixesDestroyPointerBarrier(client); + /*************** Version 6 ******************/ + case X_XFixesSetClientDisconnectMode: + return ProcXFixesSetClientDisconnectMode(client); + case X_XFixesGetClientDisconnectMode: + return ProcXFixesGetClientDisconnectMode(client); + default: + return BadRequest; + } } static _X_COLD int @@ -168,59 +211,102 @@ SProcXFixesQueryVersion(ClientPtr client) swapl(&stuff->majorVersion); swapl(&stuff->minorVersion); - return (*ProcXFixesVector[stuff->xfixesReqType]) (client); + return ProcXFixesQueryVersion(client); } -static int (*SProcXFixesVector[XFixesNumberRequests]) (ClientPtr) = { -/*************** Version 1 ******************/ - SProcXFixesQueryVersion, - SProcXFixesChangeSaveSet, - SProcXFixesSelectSelectionInput, - SProcXFixesSelectCursorInput, SProcXFixesGetCursorImage, -/*************** Version 2 ******************/ - SProcXFixesCreateRegion, - SProcXFixesCreateRegionFromBitmap, - SProcXFixesCreateRegionFromWindow, - SProcXFixesCreateRegionFromGC, - SProcXFixesCreateRegionFromPicture, - SProcXFixesDestroyRegion, - SProcXFixesSetRegion, - SProcXFixesCopyRegion, - SProcXFixesCombineRegion, - SProcXFixesCombineRegion, - SProcXFixesCombineRegion, - SProcXFixesInvertRegion, - SProcXFixesTranslateRegion, - SProcXFixesRegionExtents, - SProcXFixesFetchRegion, - SProcXFixesSetGCClipRegion, - SProcXFixesSetWindowShapeRegion, - SProcXFixesSetPictureClipRegion, - SProcXFixesSetCursorName, - SProcXFixesGetCursorName, - SProcXFixesGetCursorImageAndName, - SProcXFixesChangeCursor, SProcXFixesChangeCursorByName, -/*************** Version 3 ******************/ - SProcXFixesExpandRegion, -/*************** Version 4 ****************/ - SProcXFixesHideCursor, SProcXFixesShowCursor, -/*************** Version 5 ****************/ - SProcXFixesCreatePointerBarrier, SProcXFixesDestroyPointerBarrier, -/*************** Version 6 ****************/ - SProcXFixesSetClientDisconnectMode, SProcXFixesGetClientDisconnectMode, -}; - static _X_COLD int SProcXFixesDispatch(ClientPtr client) { - REQUEST(xXFixesReq); + REQUEST(xReq); XFixesClientPtr pXFixesClient = GetXFixesClient(client); if (pXFixesClient->major_version >= ARRAY_SIZE(version_requests)) return BadRequest; - if (stuff->xfixesReqType > version_requests[pXFixesClient->major_version]) + if (stuff->data > version_requests[pXFixesClient->major_version]) return BadRequest; - return (*SProcXFixesVector[stuff->xfixesReqType]) (client); + + switch (stuff->data) { + /*************** Version 1 ******************/ + case X_XFixesQueryVersion: + return SProcXFixesQueryVersion(client); + case X_XFixesChangeSaveSet: + return SProcXFixesChangeSaveSet(client); + case X_XFixesSelectSelectionInput: + return SProcXFixesSelectSelectionInput(client); + case X_XFixesSelectCursorInput: + return SProcXFixesSelectCursorInput(client); + case X_XFixesGetCursorImage: + return SProcXFixesGetCursorImage(client); + + /*************** Version 2 ******************/ + case X_XFixesCreateRegion: + return SProcXFixesCreateRegion(client); + case X_XFixesCreateRegionFromBitmap: + return SProcXFixesCreateRegionFromBitmap(client); + case X_XFixesCreateRegionFromWindow: + return SProcXFixesCreateRegionFromWindow(client); + case X_XFixesCreateRegionFromGC: + return SProcXFixesCreateRegionFromGC(client); + case X_XFixesCreateRegionFromPicture: + return SProcXFixesCreateRegionFromPicture(client); + case X_XFixesDestroyRegion: + return SProcXFixesDestroyRegion(client); + case X_XFixesSetRegion: + return SProcXFixesSetRegion(client); + case X_XFixesCopyRegion: + return SProcXFixesCopyRegion(client); + case X_XFixesUnionRegion: + return SProcXFixesCombineRegion(client); + case X_XFixesIntersectRegion: + return SProcXFixesCombineRegion(client); + case X_XFixesSubtractRegion: + return SProcXFixesCombineRegion(client); + case X_XFixesInvertRegion: + return SProcXFixesInvertRegion(client); + case X_XFixesTranslateRegion: + return SProcXFixesTranslateRegion(client); + case X_XFixesRegionExtents: + return SProcXFixesRegionExtents(client); + case X_XFixesFetchRegion: + return SProcXFixesFetchRegion(client); + case X_XFixesSetGCClipRegion: + return SProcXFixesSetGCClipRegion(client); + case X_XFixesSetWindowShapeRegion: + return SProcXFixesSetWindowShapeRegion(client); + case X_XFixesSetPictureClipRegion: + return SProcXFixesSetPictureClipRegion(client); + case X_XFixesSetCursorName: + return SProcXFixesSetCursorName(client); + case X_XFixesGetCursorName: + return SProcXFixesGetCursorName(client); + case X_XFixesGetCursorImageAndName: + return SProcXFixesGetCursorImageAndName(client); + case X_XFixesChangeCursor: + return SProcXFixesChangeCursor(client); + case X_XFixesChangeCursorByName: + return SProcXFixesChangeCursorByName(client); + + /*************** Version 3 ******************/ + case X_XFixesExpandRegion: + return SProcXFixesExpandRegion(client); + /*************** Version 4 ******************/ + case X_XFixesHideCursor: + return SProcXFixesHideCursor(client); + case X_XFixesShowCursor: + return SProcXFixesShowCursor(client); + /*************** Version 5 ******************/ + case X_XFixesCreatePointerBarrier: + return SProcXFixesCreatePointerBarrier(client); + case X_XFixesDestroyPointerBarrier: + return SProcXFixesDestroyPointerBarrier(client); + /*************** Version 6 ******************/ + case X_XFixesSetClientDisconnectMode: + return SProcXFixesSetClientDisconnectMode(client); + case X_XFixesGetClientDisconnectMode: + return SProcXFixesGetClientDisconnectMode(client); + default: + return BadRequest; + } } void diff --git a/xfixes/xfixesint.h b/xfixes/xfixesint.h index 5033d056d..44372b9ec 100644 --- a/xfixes/xfixesint.h +++ b/xfixes/xfixesint.h @@ -69,8 +69,6 @@ typedef struct _XFixesClient { #define GetXFixesClient(pClient) ((XFixesClientPtr)dixLookupPrivate(&(pClient)->devPrivates, XFixesClientPrivateKey)) -extern int (*ProcXFixesVector[XFixesNumberRequests]) (ClientPtr); - /* Save set */ int ProcXFixesChangeSaveSet(ClientPtr client);