xkb: simplify loops in XkbRF_Free()
Make the code a bit easier to read by simplifying the loops. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1840>
This commit is contained in:
parent
abfbc76824
commit
a0c1eeea98
|
@ -971,31 +971,34 @@ 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) {
|
||||||
for (i = 0, rule = rules->rules; i < rules->num_rules; i++, rule++) {
|
XkbRF_RulePtr r = rules->rules;
|
||||||
free((void *) rule->model);
|
int num = rules->num_rules;
|
||||||
free((void *) rule->layout);
|
for (int i = 0; i < num; i++) {
|
||||||
free((void *) rule->variant);
|
// the typecast on free() is necessary because the pointers are const
|
||||||
free((void *) rule->option);
|
free((void *) r[i].model);
|
||||||
free((void *) rule->keycodes);
|
free((void *) r[i].layout);
|
||||||
free((void *) rule->symbols);
|
free((void *) r[i].variant);
|
||||||
free((void *) rule->types);
|
free((void *) r[i].option);
|
||||||
free((void *) rule->compat);
|
free((void *) r[i].keycodes);
|
||||||
free((void *) rule->geometry);
|
free((void *) r[i].symbols);
|
||||||
|
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) {
|
||||||
for (i = 0, group = rules->groups; i < rules->num_groups; i++, group++) {
|
XkbRF_GroupPtr g = rules->groups;
|
||||||
free((void *) group->name);
|
int num = rules->num_groups;
|
||||||
free(group->words);
|
for (int i = 0; i < num; i++) {
|
||||||
|
// 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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue