diff src/lisp.h @ 104313:73f76307d49b

* lisp.h (XFLOAT_DATA): Produce an rvalue by adding 0 to the value. (XFLOAT_INIT): New macro for storing a float value. * alloc.c (make_float, make_pure_float): Use XFLOAT_INIT. * fns.c (sxhash): Copy out the value of a float in order to examine its bytes. * dbusbind.c (xd_append_arg): Likewise.
author Ken Raeburn <raeburn@raeburn.org>
date Mon, 17 Aug 2009 01:25:54 +0000
parents 6a1ccc3fe7f8
children e6841301fe4d
line wrap: on
line diff
--- a/src/lisp.h	Mon Aug 17 00:48:14 2009 +0000
+++ b/src/lisp.h	Mon Aug 17 01:25:54 2009 +0000
@@ -1377,9 +1377,12 @@
   };
 
 #ifdef HIDE_LISP_IMPLEMENTATION
-#define XFLOAT_DATA(f)	(XFLOAT (f)->u.data_)
+#define XFLOAT_DATA(f)	(XFLOAT (f)->u.data_ + 0)
 #else
-#define XFLOAT_DATA(f)	(XFLOAT (f)->u.data)
+#define XFLOAT_DATA(f)	(XFLOAT (f)->u.data + 0)
+/* This should be used only in alloc.c, which always disables
+   HIDE_LISP_IMPLEMENTATION.  */
+#define XFLOAT_INIT(f,n) (XFLOAT (f)->u.data = (n))
 #endif
 
 /* A character, declared with the following typedef, is a member