From c9e5d8080868a8d20fda3d7a96c8f78af4f7bd2a Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Mon, 15 Jul 2024 19:25:19 +0200 Subject: [PATCH] (1623) xkb: XkbWriteKeyActions(): only pass in the needed data We don't need the whole struct here, especially do we not wanna change it. Therefore only pass in what's really needed, so it gets easier to understand. Signed-off-by: Enrico Weigelt, metux IT consult --- xkb/xkb.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/xkb/xkb.c b/xkb/xkb.c index e1c2f7a41..81ffeac97 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -1185,30 +1185,29 @@ XkbSizeKeyActions(XkbDescPtr xkb, xkbGetMapReply * rep) } static char * -XkbWriteKeyActions(XkbDescPtr xkb, xkbGetMapReply * rep, char *buf, - ClientPtr client) +XkbWriteKeyActions(XkbDescPtr xkb, KeyCode firstKeyAct, CARD8 nKeyActs, char *buf) { unsigned i; CARD8 *numDesc; XkbAnyAction *actDesc; numDesc = (CARD8 *) buf; - for (i = 0; i < rep->nKeyActs; i++) { - if (xkb->server->key_acts[i + rep->firstKeyAct] == 0) + for (i = 0; i < nKeyActs; i++) { + if (xkb->server->key_acts[i + firstKeyAct] == 0) numDesc[i] = 0; else - numDesc[i] = XkbKeyNumActions(xkb, (i + rep->firstKeyAct)); + numDesc[i] = XkbKeyNumActions(xkb, (i + firstKeyAct)); } - buf += XkbPaddedSize(rep->nKeyActs); + buf += XkbPaddedSize(nKeyActs); actDesc = (XkbAnyAction *) buf; - for (i = 0; i < rep->nKeyActs; i++) { - if (xkb->server->key_acts[i + rep->firstKeyAct] != 0) { + for (i = 0; i < nKeyActs; i++) { + if (xkb->server->key_acts[i + firstKeyAct] != 0) { unsigned int num; - num = XkbKeyNumActions(xkb, (i + rep->firstKeyAct)); + num = XkbKeyNumActions(xkb, (i + firstKeyAct)); memcpy((char *) actDesc, - (char *) XkbKeyActionsPtr(xkb, (i + rep->firstKeyAct)), + (char *) XkbKeyActionsPtr(xkb, (i + firstKeyAct)), num * SIZEOF(xkbActionWireDesc)); actDesc += num; } @@ -1420,7 +1419,7 @@ XkbSendMap(ClientPtr client, XkbDescPtr xkb, xkbGetMapReply * rep) if (rep->nKeySyms > 0) desc = XkbWriteKeySyms(xkb, rep->firstKeySym, rep->nKeySyms, desc, client); if (rep->nKeyActs > 0) - desc = XkbWriteKeyActions(xkb, rep, desc, client); + desc = XkbWriteKeyActions(xkb, rep->firstKeyAct, rep->nKeyActs, desc); if (rep->totalKeyBehaviors > 0) desc = XkbWriteKeyBehaviors(xkb, rep, desc, client); if (rep->virtualMods) {