Revert "xkb: simplify loops in XkbRF_Free()"

This reverts commit a0c1eeea98.

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2046>
This commit is contained in:
Alan Coopersmith 2025-07-12 11:47:06 -07:00
parent 376cef6710
commit 239b212c65

View file

@ -971,34 +971,31 @@ XkbRF_LoadRules(FILE * file, XkbRF_RulesPtr rules)
void void
XkbRF_Free(XkbRF_RulesPtr rules) XkbRF_Free(XkbRF_RulesPtr rules)
{ {
int i;
XkbRF_RulePtr rule;
XkbRF_GroupPtr group;
if (!rules) if (!rules)
return; return;
if (rules->rules) { if (rules->rules) {
XkbRF_RulePtr r = rules->rules; for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
int num = rules->num_rules; free((void *) rule->model);
for (int i = 0; i < num; i++) { free((void *) rule->layout);
// the typecast on free() is necessary because the pointers are const free((void *) rule->variant);
free((void *) r[i].model); free((void *) rule->option);
free((void *) r[i].layout); free((void *) rule->keycodes);
free((void *) r[i].variant); free((void *) rule->symbols);
free((void *) r[i].option); free((void *) rule->types);
free((void *) r[i].keycodes); free((void *) rule->compat);
free((void *) r[i].symbols); free((void *) rule->geometry);
free((void *) r[i].types);
free((void *) r[i].compat);
free((void *) r[i].geometry);
} }
free(rules->rules); free(rules->rules);
} }
if (rules->groups) { if (rules->groups) {
XkbRF_GroupPtr g = rules->groups; for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) {
int num = rules->num_groups; free((void *) group->name);
for (int i = 0; i < num; i++) { free(group->words);
// the typecast on free() is necessary because the pointers are const
free((void *) g[i].name);
free(g[i].words);
} }
free(rules->groups); free(rules->groups);
} }