From cf0270cb4c5b098773a98e2a688906944ab9661e Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Sun, 19 Aug 2018 17:38:11 +0200 Subject: [PATCH] Add internal function mapping subr index to function * libguile/gsubr.h: * libguile/gsubr.c (scm_subr_function_by_index): New internal function. (scm_subr_function): Use new function. --- libguile/gsubr.c | 10 ++++++++-- libguile/gsubr.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libguile/gsubr.c b/libguile/gsubr.c index 2384776e0..b99cc67ca 100644 --- a/libguile/gsubr.c +++ b/libguile/gsubr.c @@ -441,12 +441,18 @@ scm_i_primitive_name (const uint32_t *code) } scm_t_subr -scm_subr_function (SCM subr) +scm_subr_function_by_index (uint32_t idx) { - uint32_t idx = primitive_subr_idx (SCM_PROGRAM_CODE (subr)); if (idx == NOT_A_SUBR_CALL) abort (); return subrs[idx]; +} + +scm_t_subr +scm_subr_function (SCM subr) +{ + uint32_t idx = primitive_subr_idx (SCM_PROGRAM_CODE (subr)); + return scm_subr_function_by_index (idx); } SCM diff --git a/libguile/gsubr.h b/libguile/gsubr.h index 63c2a7603..91a1104b6 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -57,6 +57,7 @@ SCM_INTERNAL uintptr_t scm_i_primitive_call_ip (SCM subr); SCM_INTERNAL SCM scm_i_primitive_name (const uint32_t *code); SCM_API scm_t_subr scm_subr_function (SCM subr); +SCM_INTERNAL scm_t_subr scm_subr_function_by_index (uint32_t subr_idx); SCM_API SCM scm_subr_name (SCM subr); SCM_INTERNAL SCM scm_apply_subr (union scm_vm_stack_element *sp,