summaryrefslogtreecommitdiff
path: root/libguile/procprop.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/procprop.c')
-rw-r--r--libguile/procprop.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/libguile/procprop.c b/libguile/procprop.c
index c1a37895b..cce800f2b 100644
--- a/libguile/procprop.c
+++ b/libguile/procprop.c
@@ -109,16 +109,8 @@ scm_i_procedure_arity (SCM proc)
proc = SCM_PROCEDURE (proc);
goto loop;
case scm_tcs_closures:
- proc = SCM_CLOSURE_FORMALS (proc);
- if (scm_is_null (proc))
- break;
- while (scm_is_pair (proc))
- {
- ++a;
- proc = SCM_CDR (proc);
- }
- if (!scm_is_null (proc))
- r = 1;
+ a = SCM_CLOSURE_NUM_REQUIRED_ARGS (proc);
+ r = SCM_CLOSURE_HAS_REST_ARGS (proc) ? 1 : 0;
break;
case scm_tcs_struct:
if (SCM_OBJ_CLASS_FLAGS (proc) & SCM_CLASSF_PURE_GENERIC)