Mercurial > emacs
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 |