* __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 19 Apr 2001 21:10:52 +0000 (21:10 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 19 Apr 2001 21:10:52 +0000 (21:10 +0000)
SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
parentheses in order to get the correct associativity.

libguile/ChangeLog
libguile/__scm.h

index a7525c6..62a0ad9 100644 (file)
@@ -1,3 +1,9 @@
+2001-04-19  Mikael Djurfeldt  <mdj@linnaeus.mit.edu>
+
+       * __scm.h (SCM_WTA_DISPATCH_0, SCM_WTA_DISPATCH_1,
+       SCM_WTA_DISPATCH_2, SCM_WTA_DISPATCH_n): Inserted required
+       parentheses in order to get the correct associativity.
+
 2001-04-19  Dirk Herrmann  <D.Herrmann@tu-bs.de>
 
        * unif.c (scm_array_to_list):  Added missing handling of arrays of
index 75cfe39..928c449 100644 (file)
@@ -514,40 +514,42 @@ do { \
 
 extern SCM scm_call_generic_0 (SCM gf);
 
-#define SCM_WTA_DISPATCH_0(gf, arg, pos, subr) \
-  return (SCM_UNPACK (gf) \
-          ? scm_call_generic_0 ((gf)) \
-          : scm_wrong_type_arg ((subr), (pos), (arg)), 0)
+#define SCM_WTA_DISPATCH_0(gf, arg, pos, subr)                 \
+  return (SCM_UNPACK (gf)                                      \
+         ? scm_call_generic_0 ((gf))                           \
+         : (scm_wrong_type_arg ((subr), (pos), (arg)), SCM_UNSPECIFIED))
 #define SCM_GASSERT0(cond, gf, arg, pos, subr) \
   if (!(cond)) SCM_WTA_DISPATCH_0((gf), (arg), (pos), (subr))
 
 extern SCM scm_call_generic_1 (SCM gf, SCM a1);
 
-#define SCM_WTA_DISPATCH_1(gf, a1, pos, subr) \
-  return (SCM_UNPACK (gf) \
-          ? scm_call_generic_1 ((gf), (a1)) \
-          : scm_wrong_type_arg ((subr), (pos), (a1)), 0)
+#define SCM_WTA_DISPATCH_1(gf, a1, pos, subr)                  \
+  return (SCM_UNPACK (gf)                                      \
+         ? scm_call_generic_1 ((gf), (a1))                     \
+         : (scm_wrong_type_arg ((subr), (pos), (a1)), SCM_UNSPECIFIED))
 #define SCM_GASSERT1(cond, gf, a1, pos, subr) \
   if (!(cond)) SCM_WTA_DISPATCH_1((gf), (a1), (pos), (subr))
 
 extern SCM scm_call_generic_2 (SCM gf, SCM a1, SCM a2);
 
-#define SCM_WTA_DISPATCH_2(gf, a1, a2, pos, subr) \
-  return (SCM_UNPACK (gf) \
-          ? scm_call_generic_2 ((gf), (a1), (a2)) \
-          : scm_wrong_type_arg ((subr), (pos), \
-                                (pos) == SCM_ARG1 ? (a1) : (a2)), 0)
+#define SCM_WTA_DISPATCH_2(gf, a1, a2, pos, subr)                      \
+  return (SCM_UNPACK (gf)                                              \
+         ? scm_call_generic_2 ((gf), (a1), (a2))                       \
+         : (scm_wrong_type_arg ((subr), (pos),                         \
+                                (pos) == SCM_ARG1 ? (a1) : (a2)),      \
+            SCM_UNSPECIFIED))
 #define SCM_GASSERT2(cond, gf, a1, a2, pos, subr) \
   if (!(cond)) SCM_WTA_DISPATCH_2((gf), (a1), (a2), (pos), (subr))
 
 extern SCM scm_apply_generic (SCM gf, SCM args);
 
-#define SCM_WTA_DISPATCH_n(gf, args, pos, subr) \
-  return (SCM_UNPACK (gf) \
-          ? scm_apply_generic ((gf), (args)) \
-          : scm_wrong_type_arg ((subr), (pos), \
-                                scm_list_ref ((args), \
-                                              SCM_MAKINUM ((pos) - 1))), 0)
+#define SCM_WTA_DISPATCH_n(gf, args, pos, subr)                                  \
+  return (SCM_UNPACK (gf)                                                \
+         ? scm_apply_generic ((gf), (args))                              \
+         : (scm_wrong_type_arg ((subr), (pos),                           \
+                                scm_list_ref ((args),                    \
+                                              SCM_MAKINUM ((pos) - 1))), \
+            SCM_UNSPECIFIED))
 #define SCM_GASSERTn(cond, gf, args, pos, subr) \
   if (!(cond)) SCM_WTA_DISPATCH_n((gf), (args), (pos), (subr))