diff options
Diffstat (limited to 'libguile/debug.c')
-rw-r--r-- | libguile/debug.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/libguile/debug.c b/libguile/debug.c index 1a5c197ee..c6ce99e7c 100644 --- a/libguile/debug.c +++ b/libguile/debug.c @@ -144,16 +144,9 @@ SCM_DEFINE (scm_procedure_source, "procedure-source", 1, 0, 0, if (scm_is_true (src)) return src; - switch (SCM_TYP7 (proc)) { - case scm_tcs_struct: - if (!SCM_STRUCT_APPLICABLE_P (proc) - || SCM_IMP (SCM_STRUCT_PROCEDURE (proc))) - break; - proc = SCM_STRUCT_PROCEDURE (proc); + if (SCM_STRUCTP (proc) && SCM_STRUCT_APPLICABLE_P (proc) + && SCM_HEAP_OBJECT_P ((proc = SCM_STRUCT_PROCEDURE (proc)))) continue; - default: - break; - } } while (0); |