From 851fb462b2add05c33d45e8966a34ef7ef978cf0 Mon Sep 17 00:00:00 2001 From: Kevin Tew Date: Fri, 25 Dec 2009 18:05:01 +0000 Subject: [PATCH] Added scheme_init_bignum svn: r17399 --- src/mzscheme/src/bignum.c | 15 +++++---------- src/mzscheme/src/env.c | 1 + src/mzscheme/src/schpriv.h | 1 + 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/mzscheme/src/bignum.c b/src/mzscheme/src/bignum.c index fc81ad38a1..8a03adb47f 100644 --- a/src/mzscheme/src/bignum.c +++ b/src/mzscheme/src/bignum.c @@ -97,6 +97,11 @@ void scheme_bignum_use_fuel(long n); static Scheme_Object *bignum_one; +void scheme_init_bignum() { + REGISTER_SO(bignum_one); + bignum_one = scheme_make_bignum(1); +} + #ifdef MZ_PRECISE_GC # define SAFE_SPACE(var) bigdig var[1]; # define SCHEME_BIGDIG_SAFE(b, s) ((SCHEME_BIGDIG(b) == ((Small_Bignum *) mzALIAS b)->v) ? (s[0] = SCHEME_BIGDIG(b)[0], s) : SCHEME_BIGDIG(b)) @@ -744,21 +749,11 @@ Scheme_Object *scheme_bignum_subtract(const Scheme_Object *a, const Scheme_Objec Scheme_Object *scheme_bignum_add1(const Scheme_Object *n) { - if (!bignum_one) { - REGISTER_SO(bignum_one); - bignum_one = scheme_make_bignum(1); - } - return bignum_add_sub(n, bignum_one, 0); } Scheme_Object *scheme_bignum_sub1(const Scheme_Object *n) { - if (!bignum_one) { - REGISTER_SO(bignum_one); - bignum_one = scheme_make_bignum(1); - } - return bignum_add_sub(n, bignum_one, 1); } diff --git a/src/mzscheme/src/env.c b/src/mzscheme/src/env.c index 5add73d87f..5c96d270f8 100644 --- a/src/mzscheme/src/env.c +++ b/src/mzscheme/src/env.c @@ -599,6 +599,7 @@ static void make_kernel_env(void) MZTIMEIT(numarith, scheme_init_numarith(env)); MZTIMEIT(numcomp, scheme_init_numcomp(env)); MZTIMEIT(numstr, scheme_init_numstr(env)); + MZTIMEIT(bignum, scheme_init_bignum()); MZTIMEIT(stx, scheme_init_stx(env)); MZTIMEIT(module, scheme_init_module(env)); MZTIMEIT(port, scheme_init_port(env)); diff --git a/src/mzscheme/src/schpriv.h b/src/mzscheme/src/schpriv.h index 62451441e1..481687b312 100644 --- a/src/mzscheme/src/schpriv.h +++ b/src/mzscheme/src/schpriv.h @@ -170,6 +170,7 @@ void scheme_init_true_false(void); void scheme_init_symbol_table(void); void scheme_init_symbol_type(Scheme_Env *env); void scheme_init_type(); +void scheme_init_bignum(); void scheme_init_list(Scheme_Env *env); void scheme_init_unsafe_list(Scheme_Env *env); void scheme_init_stx(Scheme_Env *env);