Commit bcf28080 authored by Gerd Moellmann's avatar Gerd Moellmann
Browse files

(struct catchtag): Add member byte_stack.

(internal_catch, Fcondition_case, internal_condition_case)
(internal_condition_case_1: Save value of byte_stack_list in
catchtag.
(unwind_to_catch): Restore byte_stack_list from catchtag.
parent 630686c8
No preview for this file type
......@@ -81,6 +81,7 @@ struct catchtag
int lisp_eval_depth;
int pdlcount;
int poll_suppress_count;
struct byte_stack *byte_stack;
};
struct catchtag *catchlist;
......@@ -922,6 +923,7 @@ internal_catch (tag, func, arg)
c.pdlcount = specpdl_ptr - specpdl;
c.poll_suppress_count = poll_suppress_count;
c.gcpro = gcprolist;
c.byte_stack = byte_stack_list;
catchlist = &c;
/* Call FUNC. */
......@@ -974,6 +976,7 @@ unwind_to_catch (catch, value)
}
while (! last_time);
byte_stack_list = catch->byte_stack;
gcprolist = catch->gcpro;
#ifdef DEBUG_GCPRO
if (gcprolist != 0)
......@@ -1085,6 +1088,7 @@ See also the function `signal' for more info.")
c.pdlcount = specpdl_ptr - specpdl;
c.poll_suppress_count = poll_suppress_count;
c.gcpro = gcprolist;
c.byte_stack = byte_stack_list;
if (_setjmp (c.jmp))
{
if (!NILP (h.var))
......@@ -1145,6 +1149,7 @@ internal_condition_case (bfun, handlers, hfun)
c.pdlcount = specpdl_ptr - specpdl;
c.poll_suppress_count = poll_suppress_count;
c.gcpro = gcprolist;
c.byte_stack = byte_stack_list;
if (_setjmp (c.jmp))
{
return (*hfun) (c.val);
......@@ -1184,6 +1189,7 @@ internal_condition_case_1 (bfun, arg, handlers, hfun)
c.pdlcount = specpdl_ptr - specpdl;
c.poll_suppress_count = poll_suppress_count;
c.gcpro = gcprolist;
c.byte_stack = byte_stack_list;
if (_setjmp (c.jmp))
{
return (*hfun) (c.val);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment