render: consolidate byte-swapping in ProcRenderAddTraps()

No need for extra functions and call tables for the few trivial lines.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-09-08 16:53:08 +02:00
committed by Enrico Weigelt
parent c971a9d641
commit 1119ccc9be

View File

@@ -98,7 +98,6 @@ static int ProcRenderCreateConicalGradient(ClientPtr pClient);
static int ProcRenderDispatch(ClientPtr pClient);
static int SProcRenderAddTraps(ClientPtr pClient);
static int SProcRenderCreateSolidFill(ClientPtr pClient);
static int SProcRenderCreateLinearGradient(ClientPtr pClient);
static int SProcRenderCreateRadialGradient(ClientPtr pClient);
@@ -177,7 +176,7 @@ int (*SProcRenderVector[RenderNumberRequests]) (ClientPtr) = {
ProcRenderQueryFilters,
ProcRenderSetPictureFilter,
ProcRenderCreateAnimCursor,
SProcRenderAddTraps,
ProcRenderAddTraps,
SProcRenderCreateSolidFill,
SProcRenderCreateLinearGradient,
SProcRenderCreateRadialGradient, SProcRenderCreateConicalGradient};
@@ -1760,14 +1759,11 @@ ProcRenderCreateAnimCursor(ClientPtr client)
}
static int
SingleRenderAddTraps(ClientPtr client)
SingleRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
{
int ntraps;
PicturePtr pPicture;
REQUEST(xRenderAddTrapsReq);
REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq);
VERIFY_PICTURE(pPicture, stuff->picture, client, DixWriteAccess);
if (!pPicture->pDrawable)
return BadDrawable;
@@ -1935,19 +1931,6 @@ ProcRenderDispatch(ClientPtr client)
return BadRequest;
}
static int _X_COLD
SProcRenderAddTraps(ClientPtr client)
{
REQUEST(xRenderAddTrapsReq);
REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq);
swapl(&stuff->picture);
swaps(&stuff->xOff);
swaps(&stuff->yOff);
SwapRestL(stuff);
return ProcRenderAddTraps(client);
}
static int _X_COLD
SProcRenderCreateSolidFill(ClientPtr client)
{
@@ -2557,17 +2540,14 @@ PanoramiXRenderTriFan(ClientPtr client, xRenderTriFanReq *stuff)
}
static int
PanoramiXRenderAddTraps(ClientPtr client)
PanoramiXRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
{
PanoramiXRes *picture;
int result = Success;
REQUEST(xRenderAddTrapsReq);
char *extra;
int extra_len;
INT16 x_off, y_off;
REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq);
VERIFY_XIN_PICTURE(picture, stuff->picture, client, DixWriteAccess);
extra_len = (client->req_len << 2) - sizeof(xRenderAddTrapsReq);
if (extra_len && (extra = calloc(1, extra_len))) {
@@ -2584,7 +2564,7 @@ PanoramiXRenderAddTraps(ClientPtr client)
stuff->xOff = x_off + walkScreen->x;
stuff->yOff = y_off + walkScreen->y;
}
result = SingleRenderAddTraps(client);
result = SingleRenderAddTraps(client, stuff);
if (result != Success)
break;
});
@@ -3095,11 +3075,21 @@ ProcRenderSetPictureFilter(ClientPtr client)
static int
ProcRenderAddTraps(ClientPtr client)
{
REQUEST(xRenderAddTrapsReq);
REQUEST_AT_LEAST_SIZE(xRenderAddTrapsReq);
if (client->swapped) {
swapl(&stuff->picture);
swaps(&stuff->xOff);
swaps(&stuff->yOff);
SwapRestL(stuff);
}
#ifdef XINERAMA
return (usePanoramiX ? PanoramiXRenderAddTraps(client)
: SingleRenderAddTraps(client));
return (usePanoramiX ? PanoramiXRenderAddTraps(client, stuff)
: SingleRenderAddTraps(client, stuff));
#else
return SingleRenderAddTraps(client);
return SingleRenderAddTraps(client, stuff);
#endif
}