/[gcl]/gcl/o/catch.c
ViewVC logotype

Diff of /gcl/o/catch.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1 by wfs, Mon Dec 6 22:44:10 1999 UTC revision 1.2 by camm, Sat Jul 20 07:10:55 2002 UTC
# Line 28  Foundation, 675 Mass Ave, Cambridge, MA Line 28  Foundation, 675 Mass Ave, Cambridge, MA
28    
29  #include "include.h"  #include "include.h"
30    
31  Fcatch(args)  void
32  object args;  Fcatch(object args)
33  {  {
34          object endp_temp;          object endp_temp;
35    
36          object *top = vs_top;          object *top = vs_top;
         object tag;  
37    
38          if (endp(args))          if (endp(args))
39                  FEtoo_few_argumentsF(args);                  FEtoo_few_argumentsF(args);
# Line 58  course of the evaluation, a non-local ju Line 57  course of the evaluation, a non-local ju
57  SI:ERROR-SET traps the jump and returns the corresponding jump tag as its \  SI:ERROR-SET traps the jump and returns the corresponding jump tag as its \
58  value.")  value.")
59     (x0)     (x0)
60  object x0;  volatile object x0;
61  {  {
         object *old_base = vs_base;  
         object *value_top;  
62          object *old_lex = lex_env;          object *old_lex = lex_env;
63    
64          /* 1 args */          /* 1 args */
# Line 91  object x0; Line 88  object x0;
88          return Cnil;          return Cnil;
89  }  }
90    
91  Funwind_protect(args)  void
92  object args;  Funwind_protect(object args)
93  {  {
94          object endp_temp;          object endp_temp;
95    
# Line 104  object args; Line 101  object args;
101          if (nlj_active) {          if (nlj_active) {
102                  object tag = nlj_tag;                  object tag = nlj_tag;
103                  frame_ptr fr = nlj_fr;                  frame_ptr fr = nlj_fr;
                 object *base;  
104    
105                  value_top = vs_top;                  value_top = vs_top;
106                  vs_top = top;                  vs_top = top;
# Line 138  object args; Line 134  object args;
134          }          }
135  }  }
136    
137  Fthrow(args)  void
138  object args;  Fthrow(object args)
139  {  {
140          object endp_temp;          object endp_temp;
141    
# Line 162  object args; Line 158  object args;
158          /* never reached */          /* never reached */
159  }  }
160    
161  init_catch()  void
162    init_catch(void)
163  {  {
164          make_special_form("CATCH", Fcatch);          make_special_form("CATCH", Fcatch);
165          make_special_form("UNWIND-PROTECT", Funwind_protect);          make_special_form("UNWIND-PROTECT", Funwind_protect);

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26