From 0d4e48188a66fa7c055750579820ffe36aacf0e6 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Mon, 8 Sep 2025 16:56:20 +0200 Subject: [PATCH] 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 --- render/render.c | 47 ++++++++++++++++++----------------------------- 1 file changed, 18 insertions(+), 29 deletions(-) diff --git a/render/render.c b/render/render.c index 9ed5f063a7..9590d5a61c 100644 --- a/render/render.c +++ b/render/render.c @@ -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 }