Convert macros to inline functions
authorRan Benita <ran234@gmail.com>
Mon, 16 Jul 2012 19:15:43 +0000 (22:15 +0300)
committerRan Benita <ran234@gmail.com>
Wed, 18 Jul 2012 11:07:02 +0000 (14:07 +0300)
Signed-off-by: Ran Benita <ran234@gmail.com>
Makefile.am
src/xkbcomp/action.c
src/xkbcomp/compat.c
src/xkbcomp/indicators.c
src/xkbcomp/keycodes.c
src/xkbcomp/keytypes.c
src/xkbcomp/misc.c
src/xkbcomp/symbols.c
src/xkbcomp/xkbcomp-priv.h

index db17832..5ca617b 100644 (file)
@@ -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 \
index 4f0a6e9..07e881e 100644 (file)
@@ -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)
 {
index 8d492db..2c40dc2 100644 (file)
@@ -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)
 {
index c7f0958..09ef851 100644 (file)
 
 /***====================================================================***/
 
-#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));
+}
 
 /***====================================================================***/
 
index ccd0553..bd7bba9 100644 (file)
  *
  ********************************************************/
 
-#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;
index 91bab7c..e7da50f 100644 (file)
@@ -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;
         }
index 7d1d380..55c77e6 100644 (file)
@@ -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)
index 81689fd..67e6a57 100644 (file)
 #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;
index 8322fdf..3b03709 100644 (file)
@@ -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 */