Mercurial > emacs
changeset 26365:6527989cb214
(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.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Fri, 05 Nov 1999 21:27:13 +0000 |
parents | 7b0217d9259c |
children | 786d3951cf71 |
files | src/eval.c |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/eval.c Fri Nov 05 21:26:42 1999 +0000 +++ b/src/eval.c Fri Nov 05 21:27:13 1999 +0000 @@ -81,6 +81,7 @@ int lisp_eval_depth; int pdlcount; int poll_suppress_count; + struct byte_stack *byte_stack; }; struct catchtag *catchlist; @@ -922,6 +923,7 @@ 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 @@ } while (! last_time); + byte_stack_list = catch->byte_stack; gcprolist = catch->gcpro; #ifdef DEBUG_GCPRO if (gcprolist != 0) @@ -1085,6 +1088,7 @@ 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 @@ 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 @@ 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);