mirror of
https://github.com/X11Libre/xserver.git
synced 2026-03-24 08:04:30 +00:00
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:
committed by
Enrico Weigelt
parent
bee50daeca
commit
316e5e431a
21
xkb/xkb.c
21
xkb/xkb.c
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user