pseudoramiX: use x_rpcbuf_t

Use x_rpcbuf_t for reply payload assembly and X_SEND_REPLY_WITH_RPCBUF()
for sending it all out.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-09-01 18:00:53 +02:00
committed by Enrico Weigelt
parent 99a776119c
commit 3be2aeba4a

View File

@@ -315,7 +315,6 @@ static int
ProcPseudoramiXQueryScreens(ClientPtr client)
{
/* REQUEST(xXineramaQueryScreensReq); */
xXineramaQueryScreensReply rep;
DEBUG_LOG("noPseudoramiXExtension=%d, pseudoramiXNumScreens=%d\n",
noPseudoramiXExtension,
@@ -323,38 +322,27 @@ ProcPseudoramiXQueryScreens(ClientPtr client)
REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
rep.type = X_Reply;
rep.sequenceNumber = client->sequence;
rep.number = noPseudoramiXExtension ? 0 : pseudoramiXNumScreens;
rep.length = bytes_to_int32(rep.number * sz_XineramaScreenInfo);
if (client->swapped) {
swaps(&rep.sequenceNumber);
swapl(&rep.length);
swapl(&rep.number);
}
WriteToClient(client, sizeof(xXineramaQueryScreensReply),&rep);
x_rpcbuf_t rpcbuf = { .swapped = client->swapped, .err_clear = TRUE };
if (!noPseudoramiXExtension) {
xXineramaScreenInfo scratch;
int i;
for (i = 0; i < pseudoramiXNumScreens; i++) {
scratch.x_org = pseudoramiXScreens[i].x;
scratch.y_org = pseudoramiXScreens[i].y;
scratch.width = pseudoramiXScreens[i].w;
scratch.height = pseudoramiXScreens[i].h;
if (client->swapped) {
swaps(&scratch.x_org);
swaps(&scratch.y_org);
swaps(&scratch.width);
swaps(&scratch.height);
}
WriteToClient(client, sz_XineramaScreenInfo,&scratch);
for (int i = 0; i < pseudoramiXNumScreens; i++) {
/* xXineramaScreenInfo is the same as xRectangle */
x_rpcbuf_write_rect(&rpcbuf,
pseudoramiXScreens[i].x,
pseudoramiXScreens[i].y,
pseudoramiXScreens[i].w,
pseudoramiXScreens[i].h);
}
}
return Success;
xXineramaQueryScreensReply reply = {
.number = noPseudoramiXExtension ? 0 : pseudoramiXNumScreens
};
if (client->swapped)
swapl(&reply.number);
return X_SEND_REPLY_WITH_RPCBUF(client, reply, rpcbuf);
}
// was PanoramiX