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);