From 29f645d5262b1dee9118c6eb29c4ed462396444f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 21 Jul 2016 11:12:59 -0400 Subject: [PATCH] * src/bytecode.c: Fix compilation with BYTE_CODE_SAFE (struct byte_stack): Re-add `bottom'. (exec_byte_code): Initialize it. --- src/bytecode.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/bytecode.c b/src/bytecode.c index 8b700b0312a..05bc9fcdb08 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -288,6 +288,12 @@ struct byte_stack and is relocated when that string is relocated. */ const unsigned char *pc; + /* bottom of stack. The bottom points to an area of memory + allocated with alloca in Fbyte_code. */ +#ifdef BYTE_CODE_SAFE + Lisp_Object *bottom; +#endif + /* The string containing the byte-code, and its current address. Storing this here protects it from GC. */ Lisp_Object byte_string; @@ -460,6 +466,9 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, if (MAX_ALLOCA / word_size <= XFASTINT (maxdepth)) memory_full (SIZE_MAX); top = alloca ((XFASTINT (maxdepth) + 1) * sizeof *top); +#ifdef BYTE_CODE_SAFE + stack.bottom = top + 1; +#endif stack.next = byte_stack_list; byte_stack_list = &stack; -- 2.39.2