/* Execution of byte code produced by bytecomp.el.
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002
+ Copyright (C) 1985, 1986, 1987, 1988, 1993, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GNU Emacs.
#include "buffer.h"
#include "charset.h"
#include "syntax.h"
+#include "window.h"
#ifdef CHECK_FRAME_FONT
#include "frame.h"
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);
- }
-
- if (!XMARKBIT (stack->byte_string))
- {
- mark_object (&stack->byte_string);
- XMARK (stack->byte_string);
- }
+ mark_object (*obj);
- if (!XMARKBIT (stack->constants))
- {
- mark_object (&stack->constants);
- XMARK (stack->constants);
- }
+ mark_object (stack->byte_string);
+ mark_object (stack->constants);
}
}
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;
Vquit_flag = Qnil; \
BEFORE_POTENTIAL_GC (); \
Fsignal (Qquit, Qnil); \
+ AFTER_POTENTIAL_GC (); \
} \
} while (0)
TOP = Qnil;
else
{
- BEFORE_POTENTIAL_GC ();
- Fcar (wrong_type_argument (Qlistp, v1));
- AFTER_POTENTIAL_GC ();
+ wrong_type_argument (Qlistp, v1);
}
break;
}
TOP = Qnil;
else
{
- BEFORE_POTENTIAL_GC ();
- Fcdr (wrong_type_argument (Qlistp, v1));
- AFTER_POTENTIAL_GC ();
+ wrong_type_argument (Qlistp, v1);
}
break;
}
AFTER_POTENTIAL_GC ();
}
}
- POP;
+ (void) POP;
break;
case Bdup:
}
case Bunwind_protect:
- /* The function record_unwind_protect can GC. */
- BEFORE_POTENTIAL_GC ();
- record_unwind_protect (0, POP);
- AFTER_POTENTIAL_GC ();
- (specpdl_ptr - 1)->symbol = Qnil;
+ record_unwind_protect (Fprogn, POP);
break;
case Bcondition_case:
else if (!NILP (v1))
{
immediate_quit = 0;
- BEFORE_POTENTIAL_GC ();
- v1 = wrong_type_argument (Qlistp, v1);
- AFTER_POTENTIAL_GC ();
- immediate_quit = 1;
- op++;
+ wrong_type_argument (Qlistp, v1);
}
}
immediate_quit = 0;
else if (NILP (v1))
TOP = Qnil;
else
- {
- BEFORE_POTENTIAL_GC ();
- Fcar (wrong_type_argument (Qlistp, v1));
- AFTER_POTENTIAL_GC ();
- }
+ wrong_type_argument (Qlistp, v1);
break;
}
else if (!NILP (v1))
{
immediate_quit = 0;
- BEFORE_POTENTIAL_GC ();
- v1 = wrong_type_argument (Qlistp, v1);
- AFTER_POTENTIAL_GC ();
- immediate_quit = 1;
- op++;
+ wrong_type_argument (Qlistp, v1);
}
}
immediate_quit = 0;
else if (NILP (v1))
TOP = Qnil;
else
- {
- BEFORE_POTENTIAL_GC ();
- Fcar (wrong_type_argument (Qlistp, v1));
- AFTER_POTENTIAL_GC ();
- }
+ wrong_type_argument (Qlistp, v1);
}
else
{
}
#endif
}
+
+/* arch-tag: b9803b6f-1ed6-4190-8adf-33fd3a9d10e9
+ (do not change this comment) */