diff options
Diffstat (limited to 'src/lisp.h')
-rw-r--r-- | src/lisp.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/lisp.h b/src/lisp.h index 8ac9cc1d2a..97c8d9fe84 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -3202,7 +3202,6 @@ struct handler ptrdiff_t pdlcount; int poll_suppress_count; int interrupt_input_blocked; - struct byte_stack *byte_stack; }; extern Lisp_Object memory_signal_data; @@ -4231,8 +4230,6 @@ extern int read_bytecode_char (bool); /* Defined in bytecode.c. */ extern void syms_of_bytecode (void); -extern struct byte_stack *byte_stack_list; -extern void relocate_byte_stack (void); extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, ptrdiff_t, Lisp_Object *); extern Lisp_Object get_byte_code_arity (Lisp_Object); @@ -4530,12 +4527,14 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); } \ } while (false) -/* SAFE_ALLOCA_LISP allocates an array of Lisp_Objects. */ +/* Set BUF to point to an allocated array of NELT Lisp_Objects, + immediately followed by EXTRA spare bytes. */ -#define SAFE_ALLOCA_LISP(buf, nelt) \ +#define SAFE_ALLOCA_LISP_EXTRA(buf, nelt, extra) \ do { \ ptrdiff_t alloca_nbytes; \ if (INT_MULTIPLY_WRAPV (nelt, word_size, &alloca_nbytes) \ + || INT_ADD_WRAPV (alloca_nbytes, extra, &alloca_nbytes) \ || SIZE_MAX < alloca_nbytes) \ memory_full (SIZE_MAX); \ else if (alloca_nbytes <= sa_avail) \ @@ -4550,6 +4549,10 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); } \ } while (false) +/* Set BUF to point to an allocated array of NELT Lisp_Objects. */ + +#define SAFE_ALLOCA_LISP(buf, nelt) SAFE_ALLOCA_LISP_EXTRA (buf, nelt, 0) + /* If USE_STACK_LISP_OBJECTS, define macros that and functions that allocate block-scoped conses and strings. These objects are not |