aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorPaul Eggert2012-07-29 22:41:10 -0700
committerPaul Eggert2012-07-29 22:41:10 -0700
commit03a660a609328ce854721de7ba403f6725ab4ace (patch)
treefdcec18ea935fc0fe9385b164736101bcd05cf24 /src/alloc.c
parente499d0eebc7d8c12b42b2aa5392ce747ca3619ea (diff)
downloademacs-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.c48
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 \ 1777static 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. */
6873union 6870union
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
6890verify (ARRAY_MARK_FLAG_VAL == ARRAY_MARK_FLAG);
6891verify (PSEUDOVECTOR_FLAG_VAL == PSEUDOVECTOR_FLAG);
6892verify (VALMASK_VAL == VALMASK);
6893
6894#undef ARRAY_MARK_FLAG
6895#undef PSEUDOVECTOR_FLAG
6896#undef VALMASK
6897
6898ptrdiff_t const EXTERNALLY_VISIBLE
6899 ARRAY_MARK_FLAG = ARRAY_MARK_FLAG_VAL,
6900 PSEUDOVECTOR_FLAG = PSEUDOVECTOR_FLAG_VAL;
6901
6902EMACS_INT const EXTERNALLY_VISIBLE
6903 VALMASK = VALMASK_VAL;