comparison src/specifier.h @ 456:e7ef97881643 r21-2-43

Import from CVS: tag r21-2-43
author cvs
date Mon, 13 Aug 2007 11:41:24 +0200
parents 3d3049ae1304
children af57a77cbc92
comparison
equal deleted inserted replaced
455:5b97c1cd6ed0 456:e7ef97881643
233 233
234 /* Fallback value. For magic specifiers, it is a pointer to the ghost. */ 234 /* Fallback value. For magic specifiers, it is a pointer to the ghost. */
235 Lisp_Object fallback; 235 Lisp_Object fallback;
236 236
237 /* type-specific extra data attached to a specifier */ 237 /* type-specific extra data attached to a specifier */
238 char data[1]; 238 max_align_t data[1];
239 }; 239 };
240 typedef struct Lisp_Specifier Lisp_Specifier; 240 typedef struct Lisp_Specifier Lisp_Specifier;
241 241
242 DECLARE_LRECORD (specifier, Lisp_Specifier); 242 DECLARE_LRECORD (specifier, Lisp_Specifier);
243 #define XSPECIFIER(x) XRECORD (x, specifier, Lisp_Specifier) 243 #define XSPECIFIER(x) XRECORD (x, specifier, Lisp_Specifier)
259 SPECMETH (maybe_specmeth_sp, m, args); \ 259 SPECMETH (maybe_specmeth_sp, m, args); \
260 } while (0) 260 } while (0)
261 261
262 /***** Defining new specifier types *****/ 262 /***** Defining new specifier types *****/
263 263
264 #define specifier_data_offset (offsetof (Lisp_Specifier, data)) 264 #define specifier_data_offset offsetof (Lisp_Specifier, data)
265 extern const struct lrecord_description specifier_empty_extra_description[]; 265 extern const struct lrecord_description specifier_empty_extra_description[];
266 266
267 #ifdef ERROR_CHECK_TYPECHECK 267 #ifdef ERROR_CHECK_TYPECHECK
268 #define DECLARE_SPECIFIER_TYPE(type) \ 268 #define DECLARE_SPECIFIER_TYPE(type) \
269 extern struct specifier_methods * type##_specifier_methods; \ 269 extern struct specifier_methods * type##_specifier_methods; \