render: consolidate byte-swapping in ProcRenderCreateSolidFill()

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:56:20 +02:00
committed by Enrico Weigelt
parent f1c6f79819
commit 0d4e48188a

View File

@@ -98,7 +98,6 @@ static int ProcRenderCreateConicalGradient(ClientPtr pClient);
static int ProcRenderDispatch(ClientPtr pClient);
static int SProcRenderCreateSolidFill(ClientPtr pClient);
static int SProcRenderCreateLinearGradient(ClientPtr pClient);
static int SProcRenderCreateRadialGradient(ClientPtr pClient);
static int SProcRenderCreateConicalGradient(ClientPtr pClient);
@@ -177,7 +176,7 @@ int (*SProcRenderVector[RenderNumberRequests]) (ClientPtr) = {
ProcRenderSetPictureFilter,
ProcRenderCreateAnimCursor,
ProcRenderAddTraps,
SProcRenderCreateSolidFill,
ProcRenderCreateSolidFill,
SProcRenderCreateLinearGradient,
SProcRenderCreateRadialGradient, SProcRenderCreateConicalGradient};
@@ -1778,15 +1777,11 @@ SingleRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
}
static int
SingleRenderCreateSolidFill(ClientPtr client)
SingleRenderCreateSolidFill(ClientPtr client, xRenderCreateSolidFillReq *stuff)
{
PicturePtr pPicture;
int error = 0;
REQUEST(xRenderCreateSolidFillReq);
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
LEGAL_NEW_RESOURCE(stuff->pid, client);
pPicture = CreateSolidPicture(stuff->pid, &stuff->color, &error);
@@ -1931,20 +1926,6 @@ ProcRenderDispatch(ClientPtr client)
return BadRequest;
}
static int _X_COLD
SProcRenderCreateSolidFill(ClientPtr client)
{
REQUEST(xRenderCreateSolidFillReq);
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
swapl(&stuff->pid);
swaps(&stuff->color.alpha);
swaps(&stuff->color.red);
swaps(&stuff->color.green);
swaps(&stuff->color.blue);
return ProcRenderCreateSolidFill(client);
}
static void _X_COLD
swapStops(void *stuff, int num)
{
@@ -2576,14 +2557,11 @@ PanoramiXRenderAddTraps(ClientPtr client, xRenderAddTrapsReq *stuff)
}
static int
PanoramiXRenderCreateSolidFill(ClientPtr client)
PanoramiXRenderCreateSolidFill(ClientPtr client, xRenderCreateSolidFillReq *stuff)
{
REQUEST(xRenderCreateSolidFillReq);
PanoramiXRes *newPict;
int result = Success;
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
if (!(newPict = calloc(1, sizeof(PanoramiXRes))))
return BadAlloc;
@@ -2593,7 +2571,7 @@ PanoramiXRenderCreateSolidFill(ClientPtr client)
XINERAMA_FOR_EACH_SCREEN_BACKWARD({
stuff->pid = newPict->info[walkScreenIdx].id;
result = SingleRenderCreateSolidFill(client);
result = SingleRenderCreateSolidFill(client, stuff);
if (result != Success)
break;
});
@@ -3096,11 +3074,22 @@ ProcRenderAddTraps(ClientPtr client)
static int
ProcRenderCreateSolidFill(ClientPtr client)
{
REQUEST(xRenderCreateSolidFillReq);
REQUEST_AT_LEAST_SIZE(xRenderCreateSolidFillReq);
if (client->swapped) {
swapl(&stuff->pid);
swaps(&stuff->color.alpha);
swaps(&stuff->color.red);
swaps(&stuff->color.green);
swaps(&stuff->color.blue);
}
#ifdef XINERAMA
return (usePanoramiX ? PanoramiXRenderCreateSolidFill(client)
: SingleRenderCreateSolidFill(client));
return (usePanoramiX ? PanoramiXRenderCreateSolidFill(client, stuff)
: SingleRenderCreateSolidFill(client, stuff));
#else
return SingleRenderCreateSolidFill(client);
return SingleRenderCreateSolidFill(client, stuff);
#endif
}