xkb: use x_rpcbuf_t in XkbWriteKeyBehaviors()

As it's caller now has x_rpcbuf, we can use it here, instead of
meddling with pre-allocated buffer space directly via raw pointer.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2025-07-16 01:03:11 +02:00
committed by Enrico Weigelt
parent bee50daeca
commit 316e5e431a

View File

@@ -1206,25 +1206,18 @@ XkbSizeKeyBehaviors(XkbDescPtr xkb, xkbGetMapReply * rep)
return len;
}
static char *
XkbWriteKeyBehaviors(XkbDescPtr xkb, KeyCode firstKeyBehavior, CARD8 nKeyBehaviors, char *buf)
static void XkbWriteKeyBehaviors(XkbDescPtr xkb, KeyCode firstKeyBehavior,
CARD8 nKeyBehaviors, x_rpcbuf_t *rpcbuf)
{
unsigned i;
xkbBehaviorWireDesc *wire;
XkbBehavior *pBhvr;
wire = (xkbBehaviorWireDesc *) buf;
pBhvr = &xkb->server->behaviors[firstKeyBehavior];
for (i = 0; i < nKeyBehaviors; i++, pBhvr++) {
XkbBehavior *pBhvr = &xkb->server->behaviors[firstKeyBehavior];
for (int i = 0; i < nKeyBehaviors; i++, pBhvr++) {
if (pBhvr->type != XkbKB_Default) {
xkbBehaviorWireDesc *wire = x_rpcbuf_reserve(rpcbuf, sizeof(xkbBehaviorWireDesc));
wire->key = i + firstKeyBehavior;
wire->type = pBhvr->type;
wire->data = pBhvr->data;
wire++;
}
}
buf = (char *) wire;
return buf;
}
static int
@@ -1376,11 +1369,11 @@ static void XkbAssembleMap(ClientPtr client, XkbDescPtr xkb,
XkbWriteKeyTypes(xkb, rep.firstType, rep.nTypes, rpcbuf, client);
XkbWriteKeySyms(xkb, rep.firstKeySym, rep.nKeySyms, rpcbuf, client);
XkbWriteKeyActions(xkb, rep.firstKeyAct, rep.nKeyActs, rpcbuf);
if (rep.totalKeyBehaviors > 0)
XkbWriteKeyBehaviors(xkb, rep.firstKeyBehavior, rep.nKeyBehaviors, rpcbuf);
char *desc = rpcbuf->buffer + rpcbuf->wpos;
if (rep.totalKeyBehaviors > 0)
desc = XkbWriteKeyBehaviors(xkb, rep.firstKeyBehavior, rep.nKeyBehaviors, desc);
if (rep.virtualMods) {
register int sz;