summaryrefslogtreecommitdiff
path: root/libguile/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/debug.c')
-rw-r--r--libguile/debug.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libguile/debug.c b/libguile/debug.c
index a6de84a73..53eb16b76 100644
--- a/libguile/debug.c
+++ b/libguile/debug.c
@@ -355,7 +355,10 @@ SCM_DEFINE (scm_procedure_source, "procedure-source", 1, 0, 0,
}
}
case scm_tcs_struct:
- if (!(SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC))
+ if (!SCM_STRUCT_APPLICABLE_P (proc))
+ break;
+ proc = SCM_STRUCT_PROCEDURE (proc);
+ if (SCM_IMP (proc))
break;
goto procprop;
case scm_tc7_smob: