From 01e909d90a130f4987b70edae2dbd5a2b33edae7 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sun, 18 Mar 2012 20:14:27 +0100 Subject: [PATCH] fix to procedure-arity in previous patch * libguile/procprop.c (scm_i_procedure_arity): Fix infinite loop. --- libguile/procprop.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libguile/procprop.c b/libguile/procprop.c index 8e234edbd..ff4648d00 100644 --- a/libguile/procprop.c +++ b/libguile/procprop.c @@ -72,11 +72,15 @@ scm_i_procedure_arity (SCM proc, int *req, int *opt, int *rest) { if (!SCM_SMOB_APPLICABLE_P (proc)) return 0; - if (scm_i_program_arity (SCM_SMOB_DESCRIPTOR (proc).apply_trampoline, - req, opt, rest)) - /* The trampoline gets the smob too, which users don't - see. */ - *req -= 1; + if (!scm_i_program_arity (SCM_SMOB_DESCRIPTOR (proc).apply_trampoline, + req, opt, rest)) + return 0; + + /* The trampoline gets the smob too, which users don't + see. */ + *req -= 1; + + return 1; } else return 0;