mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-08 03:18:06 +02:00
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:
parent
376cef6710
commit
239b212c65
1 changed files with 17 additions and 20 deletions
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue