diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1998-12-04 11:41:03 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1998-12-04 11:41:03 +0000 |
commit | 2e9d6c6d3cd595d9bbf17e86919b0280726a8121 (patch) | |
tree | a9fd0738888df956827c0958a5198cbd18b18f80 /libguile/backtrace.c | |
parent | 349d9c1f86f530a7300b8e8a3608bc01ac1b9ed3 (diff) | |
download | guile-2e9d6c6d3cd595d9bbf17e86919b0280726a8121.tar.gz |
* backtrace.c (display_frame): Made more robust. Doesn't throw an
error if no source properties can be found for a frame. (Thanks
to Christian Lynbech.)
Diffstat (limited to 'libguile/backtrace.c')
-rw-r--r-- | libguile/backtrace.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libguile/backtrace.c b/libguile/backtrace.c index 9d53e4ce7..292bdf98b 100644 --- a/libguile/backtrace.c +++ b/libguile/backtrace.c @@ -399,11 +399,14 @@ display_frame (frame, nfield, indentation, sport, port, pstate) /* Display a special form. */ { SCM source = SCM_FRAME_SOURCE (frame); - SCM copy = scm_source_property (source, scm_i_copy); + SCM copy = (SCM_NIMP (source) && SCM_CONSP (source) + ? scm_source_property (source, scm_i_copy) + : SCM_BOOL_F); + SCM umcopy = (SCM_NIMP (source) && SCM_MEMOIZEDP (source) + ? scm_unmemoize (source) + : SCM_BOOL_F); display_frame_expr ("(", - SCM_NIMP (copy) && SCM_CONSP (copy) - ? copy - : scm_unmemoize (source), + SCM_NIMP (copy) && SCM_CONSP (copy) ? copy : umcopy, ")", nfield + 1 + indentation, sport, |