From dfa0929c6d0199b93907b4927f3dd82d9bc30df7 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Mon, 16 Jul 2012 22:15:43 +0300 Subject: [PATCH] Convert macros to inline functions Signed-off-by: Ran Benita --- Makefile.am | 1 - src/xkbcomp/action.c | 9 +++---- src/xkbcomp/compat.c | 23 +++++++++------- src/xkbcomp/indicators.c | 21 ++++++++++----- src/xkbcomp/keycodes.c | 24 +---------------- src/xkbcomp/keytypes.c | 58 +++++++++++++++++++++++++++++------------ src/xkbcomp/misc.c | 38 --------------------------- src/xkbcomp/symbols.c | 14 +++++++--- src/xkbcomp/xkbcomp-priv.h | 65 ++++++++++++++++++++++++++++++++++++---------- 9 files changed, 139 insertions(+), 114 deletions(-) diff --git a/Makefile.am b/Makefile.am index db17832..5ca617b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,7 +48,6 @@ libxkbcommon_la_SOURCES = \ src/xkbcomp/indicators.c \ src/xkbcomp/indicators.h \ src/xkbcomp/keycodes.c \ - src/xkbcomp/keycodes.h \ src/xkbcomp/keytypes.c \ src/xkbcomp/misc.c \ src/xkbcomp/parser.y \ diff --git a/src/xkbcomp/action.c b/src/xkbcomp/action.c index 4f0a6e9..07e881e 100644 --- a/src/xkbcomp/action.c +++ b/src/xkbcomp/action.c @@ -25,7 +25,6 @@ ********************************************************/ #include "action.h" -#include "keycodes.h" static bool actionsInitialized; static ExprDef constTrue; @@ -166,7 +165,7 @@ fieldText(unsigned field) /***====================================================================***/ -static bool +static inline bool ReportMismatch(unsigned action, unsigned field, const char *type) { ERROR("Value of %s field must be of type %s\n", fieldText(field), type); @@ -174,7 +173,7 @@ ReportMismatch(unsigned action, unsigned field, const char *type) return false; } -static bool +static inline bool ReportIllegal(unsigned action, unsigned field) { ERROR("Field %s is not defined for an action of type %s\n", @@ -183,7 +182,7 @@ ReportIllegal(unsigned action, unsigned field) return false; } -static bool +static inline bool ReportActionNotArray(unsigned action, unsigned field) { ERROR("The %s field in the %s action is not an array\n", @@ -192,7 +191,7 @@ ReportActionNotArray(unsigned action, unsigned field) return false; } -static bool +static inline bool ReportNotFound(unsigned action, unsigned field, const char *what, const char *bad) { diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c index 8d492db..2c40dc2 100644 --- a/src/xkbcomp/compat.c +++ b/src/xkbcomp/compat.c @@ -64,15 +64,6 @@ typedef struct _CompatInfo { struct xkb_keymap *keymap; } CompatInfo; -/***====================================================================***/ - -#define ReportSINotArray(si, f, i) \ - ReportNotArray("symbol interpretation", (f), siText((si), (i))) -#define ReportSIBadType(si, f, w, i) \ - ReportBadType("symbol interpretation", (f), siText((si), (i)), (w)) - -/***====================================================================***/ - static const char * siText(SymInterpInfo * si, CompatInfo * info) { @@ -90,6 +81,20 @@ siText(SymInterpInfo * si, CompatInfo * info) return buf; } +static inline bool +ReportSINotArray(SymInterpInfo *si, const char *field, CompatInfo *info) +{ + return ReportNotArray("symbol interpretation", field, siText(si, info)); +} + +static inline bool +ReportSIBadType(SymInterpInfo *si, const char *field, const char *wanted, + CompatInfo *info) +{ + return ReportBadType("symbol interpretation", field, siText(si, info), + wanted); +} + static void InitCompatInfo(CompatInfo *info, struct xkb_keymap *keymap, unsigned file_id) { diff --git a/src/xkbcomp/indicators.c b/src/xkbcomp/indicators.c index c7f0958..09ef851 100644 --- a/src/xkbcomp/indicators.c +++ b/src/xkbcomp/indicators.c @@ -30,12 +30,21 @@ /***====================================================================***/ -#define ReportIndicatorBadType(keymap, l, f, w) \ - ReportBadType("indicator map", (f), \ - xkb_atom_text((keymap)->ctx, (l)->name), (w)) -#define ReportIndicatorNotArray(keymap, l, f) \ - ReportNotArray("indicator map", (f), \ - xkb_atom_text((keymap)->ctx, (l)->name)) +static inline bool +ReportIndicatorBadType(struct xkb_keymap *keymap, LEDInfo *led, + const char *field, const char *wanted) +{ + return ReportBadType("indicator map", field, + xkb_atom_text(keymap->ctx, led->name), wanted); +} + +static inline bool +ReportIndicatorNotArray(struct xkb_keymap *keymap, LEDInfo *led, + const char *field) +{ + return ReportNotArray("indicator map", field, + xkb_atom_text(keymap->ctx, led->name)); +} /***====================================================================***/ diff --git a/src/xkbcomp/keycodes.c b/src/xkbcomp/keycodes.c index ccd0553..bd7bba9 100644 --- a/src/xkbcomp/keycodes.c +++ b/src/xkbcomp/keycodes.c @@ -24,32 +24,10 @@ * ********************************************************/ -#include "keycodes.h" +#include "xkbcomp-priv.h" #include "expr.h" #include "parseutils.h" -const char * -longText(unsigned long val) -{ - char buf[4]; - - LongToKeyName(val, buf); - return XkbcKeyNameText(buf); -} - -/***====================================================================***/ - -void -LongToKeyName(unsigned long val, char *name) -{ - name[0] = ((val >> 24) & 0xff); - name[1] = ((val >> 16) & 0xff); - name[2] = ((val >> 8) & 0xff); - name[3] = (val & 0xff); -} - -/***====================================================================***/ - typedef struct _AliasInfo { enum merge_mode merge; unsigned file_id; diff --git a/src/xkbcomp/keytypes.c b/src/xkbcomp/keytypes.c index 91bab7c..e7da50f 100644 --- a/src/xkbcomp/keytypes.c +++ b/src/xkbcomp/keytypes.c @@ -73,23 +73,49 @@ static xkb_atom_t tok_KEYPAD; /***====================================================================***/ -#define ReportTypeShouldBeArray(keymap, t, f) \ - ReportShouldBeArray("key type", (f), TypeTxt((keymap), (t))) -#define ReportTypeBadType(keymap, t, f, w) \ - ReportBadType("key type", (f), TypeTxt((keymap), (t)), (w)) +static inline const char * +MapEntryTxt(struct xkb_keymap *keymap, struct xkb_kt_map_entry *entry) +{ + return XkbcVModMaskText(keymap, entry->mods.real_mods, entry->mods.vmods); +} -/***====================================================================***/ +static inline const char * +PreserveIndexTxt(struct xkb_keymap *keymap, PreserveInfo *pi) +{ + return XkbcVModMaskText(keymap, pi->indexMods, pi->indexVMods); +} -#define MapEntryTxt(x, e) \ - XkbcVModMaskText((x), (e)->mods.real_mods, (e)->mods.vmods) -#define PreserveIndexTxt(x, p) \ - XkbcVModMaskText((x), (p)->indexMods, (p)->indexVMods) -#define PreserveTxt(x, p) \ - XkbcVModMaskText((x), (p)->preMods, (p)->preVMods) -#define TypeTxt(keymap, t) \ - xkb_atom_text((keymap)->ctx, (t)->name) -#define TypeMaskTxt(t, x) \ - XkbcVModMaskText((x), (t)->mask, (t)->vmask) +static inline const char * +PreserveTxt(struct xkb_keymap *keymap, PreserveInfo *pi) +{ + return XkbcVModMaskText(keymap, pi->preMods, pi->preVMods); +} + +static inline const char * +TypeTxt(struct xkb_keymap *keymap, KeyTypeInfo *type) +{ + return xkb_atom_text(keymap->ctx, type->name); +} + +static inline const char * +TypeMaskTxt(struct xkb_keymap *keymap, KeyTypeInfo *type) +{ + return XkbcVModMaskText(keymap, type->mask, type->vmask); +} + +static inline bool +ReportTypeShouldBeArray(struct xkb_keymap *keymap, KeyTypeInfo *type, + const char *field) +{ + return ReportShouldBeArray("key type", field, TypeTxt(keymap, type)); +} + +static inline bool +ReportTypeBadType(struct xkb_keymap *keymap, KeyTypeInfo *type, + const char *field, const char *wanted) +{ + return ReportBadType("key type", field, TypeTxt(keymap, type), wanted); +} /***====================================================================***/ @@ -707,7 +733,7 @@ SetKeyTypeField(KeyTypeInfo *type, struct xkb_keymap *keymap, if (type->defs.defined & _KT_Mask) { WARN("Multiple modifier mask definitions for key type %s\n", xkb_atom_text(keymap->ctx, type->name)); - ACTION("Using %s, ", TypeMaskTxt(type, keymap)); + ACTION("Using %s, ", TypeMaskTxt(keymap, type)); INFO("ignoring %s\n", XkbcVModMaskText(keymap, mods, vmods)); return false; } diff --git a/src/xkbcomp/misc.c b/src/xkbcomp/misc.c index 7d1d380..55c77e6 100644 --- a/src/xkbcomp/misc.c +++ b/src/xkbcomp/misc.c @@ -27,7 +27,6 @@ #include "xkbcomp-priv.h" #include "path.h" #include "parseutils.h" -#include "keycodes.h" /***====================================================================***/ @@ -107,43 +106,6 @@ ProcessIncludeFile(struct xkb_context *ctx, return true; } -/***====================================================================***/ - -int -ReportNotArray(const char *type, const char *field, const char *name) -{ - ERROR("The %s %s field is not an array\n", type, field); - ACTION("Ignoring illegal assignment in %s\n", name); - return false; -} - -int -ReportShouldBeArray(const char *type, const char *field, const char *name) -{ - ERROR("Missing subscript for %s %s\n", type, field); - ACTION("Ignoring illegal assignment in %s\n", name); - return false; -} - -int -ReportBadType(const char *type, const char *field, - const char *name, const char *wanted) -{ - ERROR("The %s %s field must be a %s\n", type, field, wanted); - ACTION("Ignoring illegal assignment in %s\n", name); - return false; -} - -int -ReportBadField(const char *type, const char *field, const char *name) -{ - ERROR("Unknown %s field %s in %s\n", type, field, name); - ACTION("Ignoring assignment to unknown field in %s\n", name); - return false; -} - -/***====================================================================***/ - bool UseNewField(unsigned field, CommonInfo * oldDefs, CommonInfo * newDefs, unsigned *pCollide) diff --git a/src/xkbcomp/symbols.c b/src/xkbcomp/symbols.c index 81689fd..67e6a57 100644 --- a/src/xkbcomp/symbols.c +++ b/src/xkbcomp/symbols.c @@ -29,14 +29,13 @@ #include "xkbcomp-priv.h" #include "parseutils.h" #include "action.h" -#include "keycodes.h" #include "vmod.h" /***====================================================================***/ /* Needed to work with the typechecker. */ -typedef darray (xkb_keysym_t) darray_xkb_keysym_t; -typedef darray (union xkb_action) darray_xkb_action; +typedef darray(xkb_keysym_t) darray_xkb_keysym_t; +typedef darray(union xkb_action) darray_xkb_action; #define RepeatYes 1 #define RepeatNo 0 @@ -51,6 +50,15 @@ typedef darray (union xkb_action) darray_xkb_action; #define _Key_GroupInfo (1 << 6) #define _Key_VModMap (1 << 7) +static inline const char * +longText(unsigned long val) +{ + char buf[4]; + + LongToKeyName(val, buf); + return XkbcKeyNameText(buf); +} + typedef struct _KeyInfo { unsigned short defined; unsigned file_id; diff --git a/src/xkbcomp/xkbcomp-priv.h b/src/xkbcomp/xkbcomp-priv.h index 8322fdf..3b03709 100644 --- a/src/xkbcomp/xkbcomp-priv.h +++ b/src/xkbcomp/xkbcomp-priv.h @@ -49,19 +49,6 @@ ClearCommonInfo(CommonInfo *cmn); extern void * AddCommonInfo(CommonInfo * old, CommonInfo * new); -extern int -ReportNotArray(const char *type, const char *field, const char *name); - -extern int -ReportShouldBeArray(const char *type, const char *field, const char *name); - -extern int -ReportBadType(const char *type, const char *field, const char *name, - const char *wanted); - -extern int -ReportBadField(const char *type, const char *field, const char *name); - extern bool ProcessIncludeFile(struct xkb_context *ctx, IncludeStmt *stmt, enum xkb_file_type file_type, XkbFile **file_rtrn, @@ -81,4 +68,56 @@ UpdateModifiersFromCompat(struct xkb_keymap *keymap); uint32_t VModsToReal(struct xkb_keymap *keymap, uint32_t vmodmask); +static inline unsigned long +KeyNameToLong(const char *name) +{ + return + (((unsigned long)name[0]) << 24) | + (((unsigned long)name[1]) << 16) | + (((unsigned long)name[2]) << 8) | + (((unsigned long)name[3]) << 0); +} + +static inline void +LongToKeyName(unsigned long val, char *name) +{ + name[0] = ((val >> 24) & 0xff); + name[1] = ((val >> 16) & 0xff); + name[2] = ((val >> 8) & 0xff); + name[3] = ((val >> 0) & 0xff); +} + +static inline bool +ReportNotArray(const char *type, const char *field, const char *name) +{ + ERROR("The %s %s field is not an array\n", type, field); + ACTION("Ignoring illegal assignment in %s\n", name); + return false; +} + +static inline bool +ReportShouldBeArray(const char *type, const char *field, const char *name) +{ + ERROR("Missing subscript for %s %s\n", type, field); + ACTION("Ignoring illegal assignment in %s\n", name); + return false; +} + +static inline bool +ReportBadType(const char *type, const char *field, + const char *name, const char *wanted) +{ + ERROR("The %s %s field must be a %s\n", type, field, wanted); + ACTION("Ignoring illegal assignment in %s\n", name); + return false; +} + +static inline bool +ReportBadField(const char *type, const char *field, const char *name) +{ + ERROR("Unknown %s field %s in %s\n", type, field, name); + ACTION("Ignoring assignment to unknown field in %s\n", name); + return false; +} + #endif /* XKBCOMP_PRIV_H */ -- 2.7.4