final bug is squashed

parent 53e71812
...@@ -146,6 +146,7 @@ ...@@ -146,6 +146,7 @@
gp-push-engine gp-push-engine
gp-peek-engine gp-peek-engine
gp-combine-engines gp-combine-engines
gp-current-engine-path
)) ))
;; Tos silence the compiler, those are fetched from the .so file ;; Tos silence the compiler, those are fetched from the .so file
...@@ -341,3 +342,4 @@ ...@@ -341,3 +342,4 @@
(define attributeU (make-variable #f)) (define attributeU (make-variable #f))
(gp-set-attribute-trampoline attributeU *delayers*) (gp-set-attribute-trampoline attributeU *delayers*)
...@@ -1618,3 +1618,11 @@ SCM_DEFINE(gp_combine_engines, "gp-combine-engines", 1, 0, 0, (SCM l), ...@@ -1618,3 +1618,11 @@ SCM_DEFINE(gp_combine_engines, "gp-combine-engines", 1, 0, 0, (SCM l),
return SCM_UNSPECIFIED; return SCM_UNSPECIFIED;
} }
#undef FUNC_NAME #undef FUNC_NAME
SCM_DEFINE(gp_get_current_engine_path, "gp-current-engine-path", 0, 0, 0, (),
"marks a variable as permanent and hence will be removed from stacks")
#define FUNC_NAME s_gp_get_current_engine_path
{
return gp_engine_path;
}
#undef FUNC_NAME
...@@ -923,8 +923,9 @@ static inline void gp_unwind_(SCM s , int ncons, int nvar, int nci, ...@@ -923,8 +923,9 @@ static inline void gp_unwind_(SCM s , int ncons, int nvar, int nci,
while(SCM_CONSP(l) && !scm_is_eq(SCM_CAR(l), a0)) while(SCM_CONSP(l) && !scm_is_eq(SCM_CAR(l), a0))
{ {
SCM engine = SCM_CDAR(l); SCM engine = SCM_CDAR(l);
scm_fluid_set_x(gp_current_stack, engine);
gp_clear(SCM_BOOL_F); gp_clear(SCM_BOOL_F);
scm_fluid_set_x(gp_current_stack, engine);
gp_engine_path = SCM_CDR(gp_engine_path);
l = SCM_CDR(l); l = SCM_CDR(l);
} }
...@@ -2004,4 +2005,5 @@ SCM_DEFINE(gp_add_unwind_hook, "gp-add-unwind-hook", 1, 0, 0, (SCM x), ...@@ -2004,4 +2005,5 @@ SCM_DEFINE(gp_add_unwind_hook, "gp-add-unwind-hook", 1, 0, 0, (SCM x),
} }
#undef FUNC_NAME #undef FUNC_NAME
//#define DB(X) //#define DB(X)
...@@ -165,6 +165,7 @@ SCM_API SCM gp_push_engine(SCM s, SCM engine); ...@@ -165,6 +165,7 @@ SCM_API SCM gp_push_engine(SCM s, SCM engine);
SCM_API SCM gp_pop_engine(); SCM_API SCM gp_pop_engine();
SCM_API SCM gp_peek_engine(); SCM_API SCM gp_peek_engine();
SCM_API SCM gp_combine_engines(SCM l); SCM_API SCM gp_combine_engines(SCM l);
SCM_API SCM gp_get_current_engine_path();
SCM_API SCM gp_set_struct(SCM a, SCM b); SCM_API SCM gp_set_struct(SCM a, SCM b);
SCM_API SCM gp_make_struct(SCM a, SCM b); SCM_API SCM gp_make_struct(SCM a, SCM b);
SCM_API SCM gp_custom_fkn(SCM custom_vm_fkn, SCM a, SCM b); SCM_API SCM gp_custom_fkn(SCM custom_vm_fkn, SCM a, SCM b);
......
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