From 64bdd507901ac6e1a41efb3c88d5cb309c830d46 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 e89e9458bf..171e4908c1 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) {