diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bytecode.c | 1 | ||||
| -rw-r--r-- | src/eval.c | 7 |
2 files changed, 3 insertions, 5 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 17457fc5742..40389e08f0e 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -369,6 +369,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 369 | ptrdiff_t item_bytes = stack_items * word_size; | 369 | ptrdiff_t item_bytes = stack_items * word_size; |
| 370 | Lisp_Object *stack_base = ptr_bounds_clip (alloc, item_bytes); | 370 | Lisp_Object *stack_base = ptr_bounds_clip (alloc, item_bytes); |
| 371 | Lisp_Object *top = stack_base; | 371 | Lisp_Object *top = stack_base; |
| 372 | *top = vector; /* Ensure VECTOR survives GC (Bug#33014). */ | ||
| 372 | Lisp_Object *stack_lim = stack_base + stack_items; | 373 | Lisp_Object *stack_lim = stack_base + stack_items; |
| 373 | unsigned char *bytestr_data = alloc; | 374 | unsigned char *bytestr_data = alloc; |
| 374 | bytestr_data = ptr_bounds_clip (bytestr_data + item_bytes, bytestr_length); | 375 | bytestr_data = ptr_bounds_clip (bytestr_data + item_bytes, bytestr_length); |
diff --git a/src/eval.c b/src/eval.c index 32cfda24d8c..a51d0c90831 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -2820,11 +2820,8 @@ Thus, (funcall \\='cons \\='x \\='y) returns (x . y). | |||
| 2820 | usage: (funcall FUNCTION &rest ARGUMENTS) */) | 2820 | usage: (funcall FUNCTION &rest ARGUMENTS) */) |
| 2821 | (ptrdiff_t nargs, Lisp_Object *args) | 2821 | (ptrdiff_t nargs, Lisp_Object *args) |
| 2822 | { | 2822 | { |
| 2823 | /* Use 'volatile' here to cause optimizing compilers to keep a | 2823 | Lisp_Object fun, original_fun; |
| 2824 | reference on the stack to the function's bytecode object. See | 2824 | Lisp_Object funcar; |
| 2825 | Bug#33014. */ | ||
| 2826 | Lisp_Object volatile fun; | ||
| 2827 | Lisp_Object original_fun, funcar; | ||
| 2828 | ptrdiff_t numargs = nargs - 1; | 2825 | ptrdiff_t numargs = nargs - 1; |
| 2829 | Lisp_Object val; | 2826 | Lisp_Object val; |
| 2830 | ptrdiff_t count; | 2827 | ptrdiff_t count; |