summaryrefslogtreecommitdiff
path: root/libguile/backtrace.c
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1998-12-04 11:41:03 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1998-12-04 11:41:03 +0000
commit2e9d6c6d3cd595d9bbf17e86919b0280726a8121 (patch)
treea9fd0738888df956827c0958a5198cbd18b18f80 /libguile/backtrace.c
parent349d9c1f86f530a7300b8e8a3608bc01ac1b9ed3 (diff)
downloadguile-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.c11
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,