summaryrefslogtreecommitdiff
path: root/libguile/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/debug.c')
-rw-r--r--libguile/debug.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/libguile/debug.c b/libguile/debug.c
index fe54b64df..5042fbb73 100644
--- a/libguile/debug.c
+++ b/libguile/debug.c
@@ -402,9 +402,7 @@ SCM_DEFINE (scm_procedure_environment, "procedure-environment", 1, 0, 0,
SCM_DEFINE (scm_procedure_module, "procedure-module", 1, 0, 0,
(SCM proc),
- "Return the module that was current when this procedure was defined.\n"
- "Free variables in this procedure are resolved relative to the\n"
- "procedure's module.")
+ "Return the module that was current when @var{proc} was defined.")
#define FUNC_NAME s_scm_procedure_module
{
SCM_VALIDATE_PROC (SCM_ARG1, proc);
@@ -412,21 +410,7 @@ SCM_DEFINE (scm_procedure_module, "procedure-module", 1, 0, 0,
if (scm_is_true (scm_program_p (proc)))
return scm_program_module (proc);
else
- {
- SCM env = scm_procedure_environment (proc);
-
- if (scm_is_null (env))
- return SCM_BOOL_F;
- else
- {
- for (; !scm_is_null (scm_cdr (env)); env = scm_cdr (env))
- ;
- if (SCM_EVAL_CLOSURE_P (scm_car (env)))
- return SCM_PACK (SCM_SMOB_DATA (scm_car (env)));
- else
- return SCM_BOOL_F;
- }
- }
+ return scm_env_module (scm_procedure_environment (proc));
}
#undef FUNC_NAME