summaryrefslogtreecommitdiff
path: root/src/keymap.h
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2012-10-10 17:51:06 +0200
committerRan Benita <ran234@gmail.com>2012-10-10 17:51:06 +0200
commitf3732d8349556e8615cb704fa9643712e954fee6 (patch)
treebd0a191ceca09c5fc5ca04059811a2a0d41ad0e1 /src/keymap.h
parentbdea377c9319dd8e5a385dd45d9fbd2b28ceaf36 (diff)
downloadxorg-lib-libxkbcommon-f3732d8349556e8615cb704fa9643712e954fee6.tar.gz
keymap: don't use darray for keymap->keys
It's never resized. Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src/keymap.h')
-rw-r--r--src/keymap.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/keymap.h b/src/keymap.h
index 5bc2a13..74efe78 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -382,8 +382,7 @@ struct xkb_keymap {
xkb_keycode_t min_key_code;
xkb_keycode_t max_key_code;
-
- darray(struct xkb_key) keys;
+ struct xkb_key *keys;
/* aliases in no particular order */
darray(struct xkb_key_alias) key_aliases;
@@ -412,11 +411,13 @@ XkbKey(struct xkb_keymap *keymap, xkb_keycode_t kc)
{
if (kc < keymap->min_key_code || kc > keymap->max_key_code)
return NULL;
- return &darray_item(keymap->keys, kc);
+ return &keymap->keys[kc];
}
#define xkb_foreach_key(iter, keymap) \
- darray_foreach(iter, keymap->keys)
+ for (iter = keymap->keys + keymap->min_key_code; \
+ iter <= keymap->keys + keymap->max_key_code; \
+ iter++)
static inline xkb_level_index_t
XkbKeyGroupWidth(const struct xkb_key *key, xkb_layout_index_t layout)