Mercurial > emacs
changeset 52472:30a3237237e0
(mark_byte_stack, unmark_byte_stack): Ignore the markbit.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 11 Sep 2003 21:58:32 +0000 |
parents | b25e157fbea7 |
children | a3fd06a8c844 |
files | src/bytecode.c |
diffstat | 1 files changed, 4 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bytecode.c Wed Sep 10 20:09:17 2003 +0000 +++ b/src/bytecode.c Thu Sep 11 21:58:32 2003 +0000 @@ -286,27 +286,13 @@ The culprit is found in the frame of Fbyte_code where the address of its local variable `stack' is equal to the recorded value of `stack' here. */ - if (!stack->top) - abort (); + eassert (stack->top); for (obj = stack->bottom; obj <= stack->top; ++obj) - if (!XMARKBIT (*obj)) - { - mark_object (*obj); - XMARK (*obj); - } + mark_object (*obj); - if (!XMARKBIT (stack->byte_string)) - { - mark_object (stack->byte_string); - XMARK (stack->byte_string); - } - - if (!XMARKBIT (stack->constants)) - { - mark_object (stack->constants); - XMARK (stack->constants); - } + mark_object (stack->byte_string); + mark_object (stack->constants); } } @@ -318,16 +304,9 @@ unmark_byte_stack () { struct byte_stack *stack; - Lisp_Object *obj; for (stack = byte_stack_list; stack; stack = stack->next) { - for (obj = stack->bottom; obj <= stack->top; ++obj) - XUNMARK (*obj); - - XUNMARK (stack->byte_string); - XUNMARK (stack->constants); - if (stack->byte_string_start != SDATA (stack->byte_string)) { int offset = stack->pc - stack->byte_string_start;