diff options
| author | Paul Eggert | 2012-07-29 22:41:10 -0700 |
|---|---|---|
| committer | Paul Eggert | 2012-07-29 22:41:10 -0700 |
| commit | 03a660a609328ce854721de7ba403f6725ab4ace (patch) | |
| tree | fdcec18ea935fc0fe9385b164736101bcd05cf24 /src/alloc.c | |
| parent | e499d0eebc7d8c12b42b2aa5392ce747ca3619ea (diff) | |
| download | emacs-03a660a609328ce854721de7ba403f6725ab4ace.tar.gz emacs-03a660a609328ce854721de7ba403f6725ab4ace.zip | |
Export to GDB most of lisp.h's remaining object-like macros.
* lisp.h (min, max): Move earlier, because they're used earlier now.
(INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
(CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
(CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
(DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
(COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
(COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
(CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
(MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
Now constants, for GDB. They need not be macros.
(MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
Now constants, for GDB, as well as macros, for static initializers.
(CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
Move to after the definition of struct Lisp_Char_Table,
since the former now needs that type defined.
(enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
(enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
(enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
New enums, for gdb_make_enums_visible.
(GLYPH_MODE_LINE_FACE): Remove; unused.
* alloc.c (STRING_BYTES_MAX): Now a constant, now a macro.
(gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
enum maxargs, enum MAX_ALLOCA.
(ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
no longer needed, now that they are done in lisp.h.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 48 |
1 files changed, 15 insertions, 33 deletions
diff --git a/src/alloc.c b/src/alloc.c index cb375f5432d..c5ed1980d7c 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -1774,13 +1774,13 @@ static char const string_overrun_cookie[GC_STRING_OVERRUN_COOKIE_SIZE] = | |||
| 1774 | STRING_BYTES_BOUND, nor can it be so long that the size_t | 1774 | STRING_BYTES_BOUND, nor can it be so long that the size_t |
| 1775 | arithmetic in allocate_string_data would overflow while it is | 1775 | arithmetic in allocate_string_data would overflow while it is |
| 1776 | calculating a value to be passed to malloc. */ | 1776 | calculating a value to be passed to malloc. */ |
| 1777 | #define STRING_BYTES_MAX \ | 1777 | static ptrdiff_t const STRING_BYTES_MAX = |
| 1778 | min (STRING_BYTES_BOUND, \ | 1778 | min (STRING_BYTES_BOUND, |
| 1779 | ((SIZE_MAX - XMALLOC_OVERRUN_CHECK_OVERHEAD \ | 1779 | ((SIZE_MAX - XMALLOC_OVERRUN_CHECK_OVERHEAD |
| 1780 | - GC_STRING_EXTRA \ | 1780 | - GC_STRING_EXTRA |
| 1781 | - offsetof (struct sblock, first_data) \ | 1781 | - offsetof (struct sblock, first_data) |
| 1782 | - SDATA_DATA_OFFSET) \ | 1782 | - SDATA_DATA_OFFSET) |
| 1783 | & ~(sizeof (EMACS_INT) - 1))) | 1783 | & ~(sizeof (EMACS_INT) - 1))); |
| 1784 | 1784 | ||
| 1785 | /* Initialize string allocation. Called from init_alloc_once. */ | 1785 | /* Initialize string allocation. Called from init_alloc_once. */ |
| 1786 | 1786 | ||
| @@ -6863,41 +6863,23 @@ The time is in seconds as a floating point value. */); | |||
| 6863 | #endif | 6863 | #endif |
| 6864 | } | 6864 | } |
| 6865 | 6865 | ||
| 6866 | /* Make some symbols visible to GDB. This section is last, so that | ||
| 6867 | the #undef lines don't mess up later code. */ | ||
| 6868 | |||
| 6869 | /* When compiled with GCC, GDB might say "No enum type named | 6866 | /* When compiled with GCC, GDB might say "No enum type named |
| 6870 | pvec_type" if we don't have at least one symbol with that type, and | 6867 | pvec_type" if we don't have at least one symbol with that type, and |
| 6871 | then xbacktrace could fail. Similarly for the other enums and | 6868 | then xbacktrace could fail. Similarly for the other enums and |
| 6872 | their values. */ | 6869 | their values. */ |
| 6873 | union | 6870 | union |
| 6874 | { | 6871 | { |
| 6872 | enum CHARTAB_SIZE_BITS CHARTAB_SIZE_BITS; | ||
| 6873 | enum CHAR_TABLE_STANDARD_SLOTS CHAR_TABLE_STANDARD_SLOTS; | ||
| 6874 | enum char_bits char_bits; | ||
| 6875 | enum CHECK_LISP_OBJECT_TYPE CHECK_LISP_OBJECT_TYPE; | 6875 | enum CHECK_LISP_OBJECT_TYPE CHECK_LISP_OBJECT_TYPE; |
| 6876 | enum DEFAULT_HASH_SIZE DEFAULT_HASH_SIZE; | ||
| 6876 | enum enum_USE_LSB_TAG enum_USE_LSB_TAG; | 6877 | enum enum_USE_LSB_TAG enum_USE_LSB_TAG; |
| 6878 | enum FLOAT_TO_STRING_BUFSIZE FLOAT_TO_STRING_BUFSIZE; | ||
| 6877 | enum Lisp_Bits Lisp_Bits; | 6879 | enum Lisp_Bits Lisp_Bits; |
| 6880 | enum Lisp_Compiled Lisp_Compiled; | ||
| 6881 | enum maxargs maxargs; | ||
| 6882 | enum MAX_ALLOCA MAX_ALLOCA; | ||
| 6878 | enum More_Lisp_Bits More_Lisp_Bits; | 6883 | enum More_Lisp_Bits More_Lisp_Bits; |
| 6879 | enum pvec_type pvec_type; | 6884 | enum pvec_type pvec_type; |
| 6880 | } const EXTERNALLY_VISIBLE gdb_make_enums_visible = {0}; | 6885 | } const EXTERNALLY_VISIBLE gdb_make_enums_visible = {0}; |
| 6881 | |||
| 6882 | /* These symbols cannot be done as enums, since values might not be | ||
| 6883 | in 'int' range. Each symbol X has a corresponding X_VAL symbol, | ||
| 6884 | verified to have the correct value. */ | ||
| 6885 | |||
| 6886 | #define ARRAY_MARK_FLAG_VAL PTRDIFF_MIN | ||
| 6887 | #define PSEUDOVECTOR_FLAG_VAL (PTRDIFF_MAX - PTRDIFF_MAX / 2) | ||
| 6888 | #define VALMASK_VAL (USE_LSB_TAG ? -1 << GCTYPEBITS : VAL_MAX) | ||
| 6889 | |||
| 6890 | verify (ARRAY_MARK_FLAG_VAL == ARRAY_MARK_FLAG); | ||
| 6891 | verify (PSEUDOVECTOR_FLAG_VAL == PSEUDOVECTOR_FLAG); | ||
| 6892 | verify (VALMASK_VAL == VALMASK); | ||
| 6893 | |||
| 6894 | #undef ARRAY_MARK_FLAG | ||
| 6895 | #undef PSEUDOVECTOR_FLAG | ||
| 6896 | #undef VALMASK | ||
| 6897 | |||
| 6898 | ptrdiff_t const EXTERNALLY_VISIBLE | ||
| 6899 | ARRAY_MARK_FLAG = ARRAY_MARK_FLAG_VAL, | ||
| 6900 | PSEUDOVECTOR_FLAG = PSEUDOVECTOR_FLAG_VAL; | ||
| 6901 | |||
| 6902 | EMACS_INT const EXTERNALLY_VISIBLE | ||
| 6903 | VALMASK = VALMASK_VAL; | ||