diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-09-03 11:20:02 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-09-03 11:20:02 +0000 |
commit | 25836893406be62419cb65c07497b03a756c22a6 (patch) | |
tree | 0ae0dbc01672c8c96dcb07660371f59232748103 /ext/-test- | |
parent | 1b126277edef6d2e9a5cd8d4113a98c74964338a (diff) | |
download | ruby-25836893406be62419cb65c07497b03a756c22a6.tar.gz |
* 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
Diffstat (limited to 'ext/-test-')
-rw-r--r-- | ext/-test-/bignum/str2big.c | 11 |
1 files changed, 11 insertions, 0 deletions
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); } |