comparison src/lisp.h @ 290:c9fe270a4101 r21-0b43

Import from CVS: tag r21-0b43
author cvs
date Mon, 13 Aug 2007 10:36:47 +0200
parents e11d67e05968
children 4b85ae5eabfb
comparison
equal deleted inserted replaced
289:6e6992ccc4b6 290:c9fe270a4101
1140 1140
1141 /*********** float ***********/ 1141 /*********** float ***********/
1142 1142
1143 #ifdef LISP_FLOAT_TYPE 1143 #ifdef LISP_FLOAT_TYPE
1144 1144
1145 /* Note: the 'next' field is there to ensure that there is enough room 1145 /* Note: the 'unused__next__' field exists only to ensure that the
1146 for the next pointer float type's free list. */ 1146 `next' pointer fits within the structure, for the purposes of the
1147 free list. This makes a difference in the unlikely case of
1148 sizeof(double) being smaller than sizeof(void *). */
1147 1149
1148 struct Lisp_Float 1150 struct Lisp_Float
1149 { 1151 {
1150 struct lrecord_header lheader; 1152 struct lrecord_header lheader;
1151 union { double d; struct Lisp_Float *next; } data; 1153 union { double d; struct Lisp_Float *unused__next__; } data;
1152 }; 1154 };
1153 1155
1154 DECLARE_LRECORD (float, struct Lisp_Float); 1156 DECLARE_LRECORD (float, struct Lisp_Float);
1155 #define XFLOAT(x) XRECORD (x, float, struct Lisp_Float) 1157 #define XFLOAT(x) XRECORD (x, float, struct Lisp_Float)
1156 #define XSETFLOAT(x, p) XSETRECORD (x, p, float) 1158 #define XSETFLOAT(x, p) XSETRECORD (x, p, float)
1157 #define FLOATP(x) RECORDP (x, float) 1159 #define FLOATP(x) RECORDP (x, float)
1158 #define GC_FLOATP(x) GC_RECORDP (x, float) 1160 #define GC_FLOATP(x) GC_RECORDP (x, float)
1159 #define CHECK_FLOAT(x) CHECK_RECORD (x, float) 1161 #define CHECK_FLOAT(x) CHECK_RECORD (x, float)
1160 #define CONCHECK_FLOAT(x) CONCHECK_RECORD (x, float) 1162 #define CONCHECK_FLOAT(x) CONCHECK_RECORD (x, float)
1161 1163
1162 #define float_next(f) ((f)->data.next)
1163 #define float_data(f) ((f)->data.d) 1164 #define float_data(f) ((f)->data.d)
1164 1165
1165 #define XFLOATINT(n) extract_float (n) 1166 #define XFLOATINT(n) extract_float (n)
1166 1167
1167 #define CHECK_INT_OR_FLOAT(x) do { \ 1168 #define CHECK_INT_OR_FLOAT(x) do { \