diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1998-06-07 02:11:28 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1998-06-07 02:11:28 +0000 |
commit | 9fa2c7b1fc37f0dccf45334954230c7d3b21f8e6 (patch) | |
tree | 9ada2efa528776a310669c18bd382babb23ee3de /libguile/debug.c | |
parent | a4156763c3a93a7193d647ba3db183aa6675e661 (diff) | |
download | guile-9fa2c7b1fc37f0dccf45334954230c7d3b21f8e6.tar.gz |
* debug.h, debug.c (scm_start_stack): New function. Implements
the guts of old scm_m_start_stack.
* debug.c (scm_m_start_stack): Use scm_start_stack.
Diffstat (limited to 'libguile/debug.c')
-rw-r--r-- | libguile/debug.c | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/libguile/debug.c b/libguile/debug.c index 4c95a8a92..9ec243d61 100644 --- a/libguile/debug.c +++ b/libguile/debug.c @@ -503,15 +503,31 @@ scm_local_eval (exp, env) return scm_eval_3 (exp, 1, env); } -static char s_start_stack[] = "start-stack"; SCM -scm_m_start_stack (exp, env) +scm_start_stack (id, exp, env) + SCM id; SCM exp; SCM env; { SCM answer; scm_debug_frame vframe; scm_debug_info vframe_vect_body; + vframe.prev = scm_last_debug_frame; + vframe.status = SCM_VOIDFRAME; + vframe.vect = &vframe_vect_body; + vframe.vect[0].id = id; + scm_last_debug_frame = &vframe; + answer = scm_eval_3 (exp, 0, env); + scm_last_debug_frame = vframe.prev; + return answer; +} + +static char s_start_stack[] = "start-stack"; +SCM +scm_m_start_stack (exp, env) + SCM exp; + SCM env; +{ exp = SCM_CDR (exp); SCM_ASSERT (SCM_NIMP (exp) && SCM_ECONSP (exp) @@ -521,14 +537,7 @@ scm_m_start_stack (exp, env) exp, SCM_WNA, s_start_stack); - vframe.prev = scm_last_debug_frame; - vframe.status = SCM_VOIDFRAME; - vframe.vect = &vframe_vect_body; - vframe.vect[0].id = scm_eval_car (exp, env); - scm_last_debug_frame = &vframe; - answer = scm_eval_car (SCM_CDR (exp), env); - scm_last_debug_frame = vframe.prev; - return answer; + return scm_start_stack (scm_eval_car (exp, env), SCM_CADR (exp), env); } /* {Debug Objects} |