diff options
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; | ||