xkb: ProcXkbGetKbdByName(): static initialization of sub-reply structs

For easier reading, move th sub-reply structs down to where they're used
first and use static initialization for the common fields.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-07-25 16:01:58 +02:00
parent 5de54750ec
commit e6f2b3721b

View File

@ -5820,11 +5820,6 @@ ProcXkbGetKbdByName(ClientPtr client)
DeviceIntPtr dev;
DeviceIntPtr tmpd;
DeviceIntPtr master;
xkbGetMapReply mrep = { 0 };
xkbGetCompatMapReply crep = { 0 };
xkbGetIndicatorMapReply irep = { 0 };
xkbGetNamesReply nrep = { 0 };
xkbGetGeometryReply grep = { 0 };
XkbDescPtr xkb, new;
XkbEventCauseRec cause;
unsigned char *str;
@ -5928,6 +5923,13 @@ ProcXkbGetKbdByName(ClientPtr client)
Bool loaded = 0;
stuff->want |= stuff->need;
xkbGetMapReply mrep = { .type = X_Reply, .sequenceNumber = client->sequence };
xkbGetCompatMapReply crep = { .type = X_Reply, .sequenceNumber = client->sequence };
xkbGetIndicatorMapReply irep = { .type = X_Reply, .sequenceNumber = client->sequence };
xkbGetNamesReply nrep = { .type = X_Reply, .sequenceNumber = client->sequence };
xkbGetGeometryReply grep = { .type = X_Reply, .sequenceNumber = client->sequence };
if (new) {
if (stuff->load)
loaded = TRUE;
@ -5941,9 +5943,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (new->map == NULL)
reported &= ~(XkbGBN_SymbolsMask | XkbGBN_TypesMask);
else if (reported & (XkbGBN_SymbolsMask | XkbGBN_TypesMask)) {
mrep.type = X_Reply;
mrep.deviceID = dev->id;
mrep.sequenceNumber = client->sequence;
mrep.length =
((SIZEOF(xkbGetMapReply) - SIZEOF(xGenericReply)) >> 2);
mrep.minKeyCode = new->min_key_code;
@ -5976,9 +5976,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (new->compat == NULL)
reported &= ~XkbGBN_CompatMapMask;
else if (reported & XkbGBN_CompatMapMask) {
crep.type = X_Reply;
crep.deviceID = dev->id;
crep.sequenceNumber = client->sequence;
crep.groups = XkbAllGroupsMask;
crep.nSI = crep.nTotalSI = new->compat->num_si;
XkbComputeGetCompatMapReplySize(new->compat, &crep);
@ -5987,9 +5985,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (new->indicators == NULL)
reported &= ~XkbGBN_IndicatorMapMask;
else if (reported & XkbGBN_IndicatorMapMask) {
irep.type = X_Reply;
irep.deviceID = dev->id;
irep.sequenceNumber = client->sequence;
irep.which = XkbAllIndicatorsMask;
XkbComputeGetIndicatorMapReplySize(new->indicators, &irep);
payload_length += SIZEOF(xGenericReply) / 4 + irep.length;
@ -5997,9 +5993,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (new->names == NULL)
reported &= ~(XkbGBN_OtherNamesMask | XkbGBN_KeyNamesMask);
else if (reported & (XkbGBN_OtherNamesMask | XkbGBN_KeyNamesMask)) {
nrep.type = X_Reply;
nrep.deviceID = dev->id;
nrep.sequenceNumber = client->sequence;
nrep.minKeyCode = new->min_key_code;
nrep.maxKeyCode = new->max_key_code;
if (reported & XkbGBN_OtherNamesMask) {
@ -6028,9 +6022,7 @@ ProcXkbGetKbdByName(ClientPtr client)
if (new->geom == NULL)
reported &= ~XkbGBN_GeometryMask;
else if (reported & XkbGBN_GeometryMask) {
grep.type = X_Reply;
grep.deviceID = dev->id;
grep.sequenceNumber = client->sequence;
grep.found = TRUE;
XkbComputeGetGeometryReplySize(new->geom, &grep, None);
payload_length += SIZEOF(xGenericReply) / 4 + grep.length;