diff --git a/libguile/goops.c b/libguile/goops.c index a470ab65a..485d067a3 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -1634,10 +1634,9 @@ scm_sys_invalidate_method_cache_x (SCM gf) SCM_SLOT (SCM_CAR (methods), scm_si_code_table) = SCM_EOL; } { - int n = SCM_INUM (SCM_SLOT (gf, scm_si_n_specialized)); + SCM n = SCM_SLOT (gf, scm_si_n_specialized); /* The sign of n is a flag indicating rest args. */ - SCM_SET_MCACHE_N_SPECIALIZED (SCM_ENTITY_PROCEDURE (gf), - SCM_MAKINUM (n >= 0 ? n : -n)); + SCM_SET_MCACHE_N_SPECIALIZED (SCM_ENTITY_PROCEDURE (gf), n); } return SCM_UNSPECIFIED; }