diff src/lisp.h @ 4134:ac5a714be3a2

[xemacs-hg @ 2007-08-21 20:32:33 by aidan] Don't use args to XINT_OR_CHAR where multiple evaluation is possible; revise X_I_O_C to not multiply evaluate.
author aidan
date Tue, 21 Aug 2007 20:32:37 +0000
parents 5333f383efbd
children d9eb5ea14f65
line wrap: on
line diff
--- a/src/lisp.h	Tue Aug 21 12:39:15 2007 +0000
+++ b/src/lisp.h	Tue Aug 21 20:32:37 2007 +0000
@@ -2890,7 +2890,15 @@
 
 #else /* no error checking */
 
-#define XCHAR_OR_INT(obj) (CHARP (obj) ? XCHAR (obj) : XINT (obj))
+/* obj is multiply eval'ed and not an lvalue; use an inline function instead
+   of a macro. */
+DECLARE_INLINE_HEADER (
+EMACS_INT
+XCHAR_OR_INT (Lisp_Object obj)
+)
+{
+  return CHARP (obj) ? XCHAR (obj) : XINT (obj);
+}
 
 #endif /* no error checking */