Xext: shm: use REPLY_*() macros for preparing / sending replies

Use the new macros for preparing and sending replies to clients.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-07-10 13:16:59 +02:00
parent bac5e1fa2d
commit 07ce669504

View File

@ -255,10 +255,7 @@ ProcShmQueryVersion(ClientPtr client)
REQUEST_HEAD_STRUCT(xShmQueryVersionReq); REQUEST_HEAD_STRUCT(xShmQueryVersionReq);
xShmQueryVersionReply rep = { xShmQueryVersionReply rep = {
.type = X_Reply,
.sharedPixmaps = sharedPixmaps, .sharedPixmaps = sharedPixmaps,
.sequenceNumber = client->sequence,
.length = 0,
.majorVersion = SERVER_SHM_MAJOR_VERSION, .majorVersion = SERVER_SHM_MAJOR_VERSION,
.minorVersion = SERVER_SHM_MINOR_VERSION, .minorVersion = SERVER_SHM_MINOR_VERSION,
.uid = geteuid(), .uid = geteuid(),
@ -266,16 +263,11 @@ ProcShmQueryVersion(ClientPtr client)
.pixmapFormat = sharedPixmaps ? ZPixmap : 0 .pixmapFormat = sharedPixmaps ? ZPixmap : 0
}; };
if (client->swapped) { REPLY_FIELD_CARD16(majorVersion);
swaps(&rep.sequenceNumber); REPLY_FIELD_CARD16(minorVersion);
swapl(&rep.length); REPLY_FIELD_CARD16(uid);
swaps(&rep.majorVersion); REPLY_FIELD_CARD16(gid);
swaps(&rep.minorVersion); REPLY_SEND_RET_SUCCESS();
swaps(&rep.uid);
swaps(&rep.gid);
}
WriteToClient(client, sizeof(xShmQueryVersionReply), &rep);
return Success;
} }
/* /*
@ -601,7 +593,6 @@ ShmGetImage(ClientPtr client, xShmGetImageReq *stuff)
DrawablePtr pDraw; DrawablePtr pDraw;
long lenPer = 0, length; long lenPer = 0, length;
Mask plane = 0; Mask plane = 0;
xShmGetImageReply xgi;
ShmDescPtr shmdesc; ShmDescPtr shmdesc;
VisualID visual = None; VisualID visual = None;
RegionPtr pVisibleRegion = NULL; RegionPtr pVisibleRegion = NULL;
@ -646,13 +637,6 @@ ShmGetImage(ClientPtr client, xShmGetImageReq *stuff)
return BadMatch; return BadMatch;
visual = None; visual = None;
} }
xgi = (xShmGetImageReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0,
.visual = visual,
.depth = pDraw->depth
};
if (stuff->format == ZPixmap) { if (stuff->format == ZPixmap) {
length = PixmapBytePad(stuff->width, pDraw->depth) * stuff->height; length = PixmapBytePad(stuff->width, pDraw->depth) * stuff->height;
} }
@ -664,7 +648,6 @@ ShmGetImage(ClientPtr client, xShmGetImageReq *stuff)
} }
VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client); VERIFY_SHMSIZE(shmdesc, stuff->offset, length, client);
xgi.size = length;
if (length == 0) { if (length == 0) {
/* nothing to do */ /* nothing to do */
@ -681,7 +664,6 @@ ShmGetImage(ClientPtr client, xShmGetImageReq *stuff)
stuff->format, shmdesc->addr + stuff->offset); stuff->format, shmdesc->addr + stuff->offset);
} }
else { else {
length = stuff->offset; length = stuff->offset;
for (; plane; plane >>= 1) { for (; plane; plane >>= 1) {
if (stuff->planeMask & plane) { if (stuff->planeMask & plane) {
@ -700,15 +682,15 @@ ShmGetImage(ClientPtr client, xShmGetImageReq *stuff)
} }
} }
if (client->swapped) { xShmGetImageReply rep = {
swaps(&xgi.sequenceNumber); .visual = visual,
swapl(&xgi.length); .depth = pDraw->depth,
swapl(&xgi.visual); .size = length,
swapl(&xgi.size); };
}
WriteToClient(client, sizeof(xShmGetImageReply), &xgi);
return Success; REPLY_FIELD_CARD32(visual);
REPLY_FIELD_CARD32(size);
REPLY_SEND_RET_SUCCESS();
} }
static int static int
@ -793,7 +775,6 @@ ProcShmGetImage(ClientPtr client)
#ifdef XINERAMA #ifdef XINERAMA
PanoramiXRes *draw; PanoramiXRes *draw;
DrawablePtr pDraw; DrawablePtr pDraw;
xShmGetImageReply xgi;
ShmDescPtr shmdesc; ShmDescPtr shmdesc;
int i, x, y, w, h, format, rc; int i, x, y, w, h, format, rc;
Mask plane = 0, planemask; Mask plane = 0, planemask;
@ -885,16 +866,6 @@ ProcShmGetImage(ClientPtr client)
IncludeInferiors); IncludeInferiors);
} }
xgi = (xShmGetImageReply) {
.type = X_Reply,
.sequenceNumber = client->sequence,
.length = 0,
.visual = wVisual(((WindowPtr) pDraw)),
.depth = pDraw->depth
};
xgi.size = length;
if (length == 0) { /* nothing to do */ if (length == 0) { /* nothing to do */
} }
else if (format == ZPixmap) { else if (format == ZPixmap) {
@ -916,15 +887,15 @@ ProcShmGetImage(ClientPtr client)
} }
free(drawables); free(drawables);
if (client->swapped) { xShmGetImageReply rep = {
swaps(&xgi.sequenceNumber); .visual = wVisual(((WindowPtr) pDraw)),
swapl(&xgi.length); .depth = pDraw->depth,
swapl(&xgi.visual); .size = length,
swapl(&xgi.size); };
}
WriteToClient(client, sizeof(xShmGetImageReply), &xgi);
return Success; REPLY_FIELD_CARD32(visual);
REPLY_FIELD_CARD32(size);
REPLY_SEND_RET_SUCCESS();
#else #else
return ShmGetImage(client, stuff); return ShmGetImage(client, stuff);
#endif /* XINERAMA */ #endif /* XINERAMA */
@ -1300,12 +1271,6 @@ ProcShmCreateSegment(ClientPtr client)
int fd; int fd;
ShmDescPtr shmdesc; ShmDescPtr shmdesc;
xShmCreateSegmentReply rep = {
.type = X_Reply,
.nfd = 1,
.sequenceNumber = client->sequence,
.length = 0,
};
LEGAL_NEW_RESOURCE(stuff->shmseg, client); LEGAL_NEW_RESOURCE(stuff->shmseg, client);
if ((stuff->readOnly != xTrue) && (stuff->readOnly != xFalse)) { if ((stuff->readOnly != xTrue) && (stuff->readOnly != xFalse)) {
@ -1361,8 +1326,12 @@ ProcShmCreateSegment(ClientPtr client)
close(fd); close(fd);
return BadAlloc; return BadAlloc;
} }
WriteToClient(client, sizeof (xShmCreateSegmentReply), &rep);
return Success; xShmCreateSegmentReply rep = {
.nfd = 1,
};
REPLY_SEND_RET_SUCCESS();
} }
#endif /* SHM_FD_PASSING */ #endif /* SHM_FD_PASSING */