It clearer to just access the needed data directly.
Signed-off-by: Ran Benita <ran234@gmail.com>
if (level != 0)
write_buf(buf, ", ");
write_action(keymap, buf,
- XkbKeyActionEntry(key, group, level),
+ &key->groups[group].levels[level].action,
NULL, NULL);
}
write_buf(buf, " ]");
if (level >= XkbKeyGroupWidth(key, layout))
goto err;
- num_syms = XkbKeyNumSyms(key, layout, level);
+ num_syms = key->groups[layout].levels[level].num_syms;
if (num_syms == 0)
goto err;
- *syms_out = XkbKeySymEntry(key, layout, level);
+ if (num_syms == 1)
+ *syms_out = &key->groups[layout].levels[level].u.sym;
+ else
+ *syms_out = key->groups[layout].levels[level].u.syms;
+
return num_syms;
err:
return key->groups[layout].type->num_levels;
}
-static inline unsigned int
-XkbKeyNumSyms(const struct xkb_key *key, xkb_layout_index_t layout,
- xkb_level_index_t level)
-{
- return key->groups[layout].levels[level].num_syms;
-}
-
-static inline const xkb_keysym_t *
-XkbKeySymEntry(const struct xkb_key *key, xkb_layout_index_t layout,
- xkb_level_index_t level)
-{
- if (XkbKeyNumSyms(key, layout, level) <= 1)
- return &key->groups[layout].levels[level].u.sym;
- else
- return key->groups[layout].levels[level].u.syms;
-}
-
-static inline const union xkb_action *
-XkbKeyActionEntry(const struct xkb_key *key, xkb_layout_index_t layout,
- xkb_level_index_t level)
-{
- return &key->groups[layout].levels[level].action;
-}
-
struct xkb_keymap *
xkb_keymap_new(struct xkb_context *ctx,
enum xkb_keymap_format format,
if (level == XKB_LEVEL_INVALID)
return &fake;
- return XkbKeyActionEntry(key, layout, level);
+ return &key->groups[layout].levels[level].action;
}
static struct xkb_filter *
xkb_foreach_key(key, keymap) {
for (group = 0; group < key->num_groups; group++) {
- for (level = 0; level < XkbKeyGroupWidth(key, group);
- level++) {
- if (XkbKeyNumSyms(key, group, level) != 1 ||
- (XkbKeySymEntry(key, group, level))[0] != sym)
+ for (level = 0; level < XkbKeyGroupWidth(key, group); level++) {
+ if (key->groups[group].levels[level].num_syms != 1 ||
+ key->groups[group].levels[level].u.sym != sym)
continue;
/*