xkb: XkbSendCompatMap(): pass xkbGetCompatMapReply as value instead of pointer

It's not passing back any data via that pointer and actually the last
consumer of it. Changing it to value instead of pointer clears the
road for further simplifications by subsequent patches.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-07-15 21:44:48 +02:00
parent 73fd170987
commit d1555edcc2

View File

@ -2804,22 +2804,22 @@ XkbComputeGetCompatMapReplySize(XkbCompatMapPtr compat,
static int
XkbSendCompatMap(ClientPtr client,
XkbCompatMapPtr compat, xkbGetCompatMapReply * rep)
XkbCompatMapPtr compat, xkbGetCompatMapReply rep)
{
char *data;
int size;
if (rep->length > 0) {
data = calloc(rep->length, 4);
if (rep.length > 0) {
data = calloc(rep.length, 4);
if (data) {
register unsigned i, bit;
xkbModsWireDesc *grp;
XkbSymInterpretPtr sym = &compat->sym_interpret[rep->firstSI];
XkbSymInterpretPtr sym = &compat->sym_interpret[rep.firstSI];
xkbSymInterpretWireDesc *wire = (xkbSymInterpretWireDesc *) data;
size = rep->length * 4;
size = rep.length * 4;
for (i = 0; i < rep->nSI; i++, sym++, wire++) {
for (i = 0; i < rep.nSI; i++, sym++, wire++) {
wire->sym = sym->sym;
wire->mods = sym->mods;
wire->match = sym->match;
@ -2831,10 +2831,10 @@ XkbSendCompatMap(ClientPtr client,
swapl(&wire->sym);
}
}
if (rep->groups) {
if (rep.groups) {
grp = (xkbModsWireDesc *) wire;
for (i = 0, bit = 1; i < XkbNumKbdGroups; i++, bit <<= 1) {
if (rep->groups & bit) {
if (rep.groups & bit) {
grp->mask = compat->groups[i].mask;
grp->realMods = compat->groups[i].real_mods;
grp->virtualMods = compat->groups[i].vmods;
@ -2854,14 +2854,14 @@ XkbSendCompatMap(ClientPtr client,
data = NULL;
if (client->swapped) {
swaps(&rep->sequenceNumber);
swapl(&rep->length);
swaps(&rep->firstSI);
swaps(&rep->nSI);
swaps(&rep->nTotalSI);
swaps(&rep.sequenceNumber);
swapl(&rep.length);
swaps(&rep.firstSI);
swaps(&rep.nSI);
swaps(&rep.nTotalSI);
}
WriteToClient(client, SIZEOF(xkbGetCompatMapReply), rep);
WriteToClient(client, sizeof(xkbGetCompatMapReply), &rep);
if (data) {
WriteToClient(client, size, data);
free((char *) data);
@ -2906,7 +2906,7 @@ ProcXkbGetCompatMap(ClientPtr client)
return BadValue;
}
XkbComputeGetCompatMapReplySize(compat, &rep);
return XkbSendCompatMap(client, compat, &rep);
return XkbSendCompatMap(client, compat, rep);
}
/**
@ -6118,7 +6118,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (reported & (XkbGBN_SymbolsMask | XkbGBN_TypesMask))
XkbSendMap(client, new, mrep);
if (reported & XkbGBN_CompatMapMask)
XkbSendCompatMap(client, new->compat, &crep);
XkbSendCompatMap(client, new->compat, crep);
if (reported & XkbGBN_IndicatorMapMask)
XkbSendIndicatorMap(client, new->indicators, &irep);
if (reported & (XkbGBN_KeyNamesMask | XkbGBN_OtherNamesMask))