comparison src/config.in @ 28406:451721e784a8

Stop assuming interval pointers and lisp objects can be distinguished by inspection. Beginnings of support for expensive internal consistency checks. * config.in (ENABLE_CHECKING): Undef. * lisp.h (struct interval): Replace "parent" field with a union of interval pointer and Lisp_Object; add new bitfield to use as discriminant. Change other flag fields to bitfields. (CHECK): New macro for consistency checking. If ENABLE_CHECKING is defined and the supplied test fails, print a message and abort. (eassert): New macro. Use CHECK to provide an assert-like facility. * intervals.h (NULL_INTERVAL_P): Now applies only to real interval pointers; abort if the value looks like a lisp object. (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT, SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT): Modify for new interval parent definition. * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE, UNMARK_BALANCE_INTERVALS): Update references that need an addressable lisp object in the interval structure. (die): New function. (suppress_checking): New variable. * intervals.c (interval_start_pos): Just return 0 if there's no parent object.
author Ken Raeburn <raeburn@raeburn.org>
date Wed, 29 Mar 2000 22:14:34 +0000
parents 1426e80e9ba8
children ee4d84b99fed
comparison
equal deleted inserted replaced
28405:870e99935503 28406:451721e784a8
502 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */ 502 /* Define HAVE_X11R6_XIM if we have usable X11R6-style XIM support. */
503 503
504 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM 504 #if defined HAVE_X11R6 && !defined INHIBIT_X11R6_XIM
505 #define HAVE_X11R6_XIM 505 #define HAVE_X11R6_XIM
506 #endif 506 #endif
507
508 /* Should we enable expensive run-time checking of data types? */
509 #undef ENABLE_CHECKING