summaryrefslogtreecommitdiff
path: root/src/keymap.c
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2013-03-04 12:27:06 +0200
committerDaniel Stone <daniel@fooishbar.org>2013-03-18 22:20:05 +0000
commitf8d3ec9f6fcfea682ca6383fda88c6a00b0c9c41 (patch)
tree4edc2716d3dbe30e37aed148a1e7171e159e0d3f /src/keymap.c
parentea3cf26db5c6b71a7e3cb755c03db6757fd6634f (diff)
downloadxorg-lib-libxkbcommon-f8d3ec9f6fcfea682ca6383fda88c6a00b0c9c41.tar.gz
keymap: don't use darray for key aliases
With a little tweak to the copy-to-keymap routine in keycodes.c we can use a normal array. Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 758a35b..480a4ce 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -107,7 +107,7 @@ xkb_keymap_unref(struct xkb_keymap *keymap)
}
free(keymap->types);
darray_free(keymap->sym_interprets);
- darray_free(keymap->key_aliases);
+ free(keymap->key_aliases);
free(keymap->group_names);
darray_free(keymap->mods);
darray_free(keymap->leds);
@@ -499,11 +499,9 @@ XkbKeyByName(struct xkb_keymap *keymap, xkb_atom_t name, bool use_aliases)
xkb_atom_t
XkbResolveKeyAlias(struct xkb_keymap *keymap, xkb_atom_t name)
{
- const struct xkb_key_alias *alias;
-
- darray_foreach(alias, keymap->key_aliases)
- if (name == alias->alias)
- return alias->real;
+ for (unsigned i = 0; i < keymap->num_key_aliases; i++)
+ if (keymap->key_aliases[i].alias == name)
+ return keymap->key_aliases[i].real;
return XKB_ATOM_NONE;
}