mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 14:34:29 +00:00
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:
committed by
Enrico Weigelt
parent
c971a9d641
commit
1119ccc9be
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user