From 25836893406be62419cb65c07497b03a756c22a6 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 3 Sep 2013 11:20:02 +0000 Subject: * bignum.c (GMP_STR2BIG_DIGITS): New macro. (str2big_gmp): New function. (rb_cstr_to_inum): Use str2big_gmp for big bignums. (rb_str2big_gmp): New function. * internal.h (rb_str2big_gmp): Declared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/-test-/bignum/str2big.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'ext/-test-/bignum') diff --git a/ext/-test-/bignum/str2big.c b/ext/-test-/bignum/str2big.c index b6492fa73f..0fdcb53290 100644 --- a/ext/-test-/bignum/str2big.c +++ b/ext/-test-/bignum/str2big.c @@ -19,10 +19,21 @@ str2big_karatsuba(VALUE str, VALUE vbase, VALUE badcheck) return rb_str2big_karatsuba(str, NUM2INT(vbase), RTEST(badcheck)); } +#if defined(HAVE_LIBGMP) && defined(HAVE_GMP_H) +static VALUE +str2big_gmp(VALUE str, VALUE vbase, VALUE badcheck) +{ + return rb_str2big_gmp(str, NUM2INT(vbase), RTEST(badcheck)); +} +#else +#define str2big_gmp rb_f_notimplement +#endif + void Init_str2big(VALUE klass) { rb_define_method(rb_cString, "str2big_poweroftwo", str2big_poweroftwo, 2); rb_define_method(rb_cString, "str2big_normal", str2big_normal, 2); rb_define_method(rb_cString, "str2big_karatsuba", str2big_karatsuba, 2); + rb_define_method(rb_cString, "str2big_gmp", str2big_gmp, 2); } -- cgit v1.2.3