diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2016-07-21 11:12:59 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2016-07-21 11:12:59 -0400 |
commit | 29f645d5262b1dee9118c6eb29c4ed462396444f (patch) | |
tree | a2f570226132ae41fc821a50c233f40ff688f282 | |
parent | cf23d8e9d3d3b4165a9d94759895ee1c022ab0ef (diff) |
* src/bytecode.c: Fix compilation with BYTE_CODE_SAFE
(struct byte_stack): Re-add `bottom'.
(exec_byte_code): Initialize it.
-rw-r--r-- | src/bytecode.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 8b700b0312..05bc9fcdb0 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; |