diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1996-10-14 20:28:18 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1996-10-14 20:28:18 +0000 |
commit | c6b8a41a55b9a89988e598800f242c698fa3e83b (patch) | |
tree | 0ae1bd5297d9fe4e12f2cc0890c094f440a30f00 /libguile/debug.c | |
parent | 473c250d0ae97ea7329c3a5b29573e26b18b5aa1 (diff) | |
download | guile-c6b8a41a55b9a89988e598800f242c698fa3e83b.tar.gz |
* debug.c (scm_procedure_name): Try procedure property `name' for
compiled closures aswell.
Diffstat (limited to 'libguile/debug.c')
-rw-r--r-- | libguile/debug.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/libguile/debug.c b/libguile/debug.c index 5e3213ae0..dc985fccd 100644 --- a/libguile/debug.c +++ b/libguile/debug.c @@ -210,6 +210,7 @@ scm_procedure_name (proc) s_procedure_name); switch (SCM_TYP7 (proc)) { case scm_tcs_closures: + case scm_tc7_cclo: { SCM name = scm_procedure_property (proc, scm_i_name); #if 0 @@ -309,15 +310,23 @@ scm_m_start_stack (exp, env) SCM env; { SCM answer; - scm_debug_frame *old = scm_last_debug_frame; + scm_debug_frame *oframe = scm_last_debug_frame; + scm_debug_frame vframe; exp = SCM_CDR (exp); - SCM_ASSERT (SCM_NIMP (exp) && SCM_CONSP (exp) && SCM_NULLP (SCM_CDR (exp)), + SCM_ASSERT (SCM_NIMP (exp) + && SCM_CONSP (exp) + && SCM_NIMP (SCM_CDR (exp)) + && SCM_CONSP (SCM_CDR (exp)) + && SCM_NULLP (SCM_CDDR (exp)), exp, SCM_WNA, s_start_stack); - scm_last_debug_frame = 0; - answer = scm_eval_car (exp, env); - scm_last_debug_frame = old; + vframe.prev = 0; + vframe.status = SCM_VOIDFRAME; + 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 = oframe; return answer; } |