From c955f8e2f9a915e3b7bced6f9b0c2b864f31e8ef Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Mon, 24 Sep 2012 14:41:09 +0200 Subject: keymap: store a pointer to the type in xkb_group instead of index Gets rid of some more unneeded indirection, including the XkbKeyType macro. Signed-off-by: Ran Benita --- src/keymap.h | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'src/keymap.h') diff --git a/src/keymap.h b/src/keymap.h index 243a5cf..0829c39 100644 --- a/src/keymap.h +++ b/src/keymap.h @@ -331,7 +331,8 @@ struct xkb_level { struct xkb_group { bool explicit_type; - unsigned type_index; + /* Points to a type in keymap->types. */ + const struct xkb_key_type *type; /* Use XkbKeyGroupWidth for the number of levels. */ struct xkb_level *levels; }; @@ -406,18 +407,10 @@ XkbKey(struct xkb_keymap *keymap, xkb_keycode_t kc) #define xkb_foreach_key(iter, keymap) \ darray_foreach(iter, keymap->keys) -static inline struct xkb_key_type * -XkbKeyType(struct xkb_keymap *keymap, const struct xkb_key *key, - xkb_layout_index_t layout) -{ - return &keymap->types[key->groups[layout].type_index]; -} - static inline xkb_level_index_t -XkbKeyGroupWidth(struct xkb_keymap *keymap, const struct xkb_key *key, - xkb_layout_index_t layout) +XkbKeyGroupWidth(const struct xkb_key *key, xkb_layout_index_t layout) { - return XkbKeyType(keymap, key, layout)->num_levels; + return key->groups[layout].type->num_levels; } static inline unsigned int -- cgit v1.2.1