From c18e93ef0441f0d31db38524836735139d68b31c Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Mon, 30 Jun 2025 14:35:41 +0200 Subject: [PATCH] Add scm_integer_size_z to internal integers.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * libguile/integers.c (scm_integer_size_z): * libguile/integers.h: VoilĂ . --- libguile/integers.c | 6 ++++++ libguile/integers.h | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libguile/integers.c b/libguile/integers.c index 09fbe6bce..39867e774 100644 --- a/libguile/integers.c +++ b/libguile/integers.c @@ -479,6 +479,12 @@ scm_integer_from_mpz (const mpz_t mpz) return normalize_bignum (make_bignum_from_mpz (mpz)); } +size_t +scm_integer_size_z (struct scm_bignum *z) +{ + return sizeof (*z) + bignum_limb_count (z) * sizeof (mp_limb_t); +} + int scm_is_integer_odd_i (scm_t_inum i) { diff --git a/libguile/integers.h b/libguile/integers.h index 3fc53f019..3cf082f8d 100644 --- a/libguile/integers.h +++ b/libguile/integers.h @@ -1,7 +1,7 @@ #ifndef SCM_INTEGERS_H #define SCM_INTEGERS_H -/* Copyright 2021, 2022 Free Software Foundation, Inc. +/* Copyright 2021, 2022, 2025 Free Software Foundation, Inc. This file is part of Guile. @@ -35,6 +35,7 @@ scm_bignum (SCM x) SCM_INTERNAL SCM scm_integer_from_mpz (const mpz_t n); SCM_INTERNAL void scm_integer_set_mpz_z (struct scm_bignum *z, mpz_t n); SCM_INTERNAL void scm_integer_init_set_mpz_z (struct scm_bignum *z, mpz_t n); +SCM_INTERNAL size_t scm_integer_size_z (struct scm_bignum *z); SCM_INTERNAL int scm_is_integer_odd_i (scm_t_inum i); SCM_INTERNAL int scm_is_integer_odd_z (struct scm_bignum *z);