[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/bytecode.c
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/bytecode.c |
Date: |
Thu, 11 Sep 2003 17:58:34 -0400 |
Index: emacs/src/bytecode.c
diff -c emacs/src/bytecode.c:1.78 emacs/src/bytecode.c:1.79
*** emacs/src/bytecode.c:1.78 Mon Sep 1 11:45:51 2003
--- emacs/src/bytecode.c Thu Sep 11 17:58:32 2003
***************
*** 286,312 ****
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 ();
for (obj = stack->bottom; obj <= stack->top; ++obj)
! if (!XMARKBIT (*obj))
! {
! mark_object (*obj);
! XMARK (*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);
! }
}
}
--- 286,298 ----
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. */
! eassert (stack->top);
for (obj = stack->bottom; obj <= stack->top; ++obj)
! mark_object (*obj);
!
! mark_object (stack->byte_string);
! mark_object (stack->constants);
}
}
***************
*** 318,333 ****
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;
--- 304,312 ----