summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-31 14:21:54 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-31 14:21:54 +0000
commit9e84b33564fd48e075f887e405e625c5d600bf6a (patch)
tree1761737c05332da7ac12edf229b075a73dd032bf
parent5f8cba07051cff9443df7764e192050a3b431912 (diff)
* bignum.c (power_cache_get_power): Change numdigits_ret to size_t *.
(big2str_orig): Change len argument to size_t. (big2str_karatsuba): Ditto. (rb_big2str1): Follow the above changes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--bignum.c18
2 files changed, 17 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 929c0604a9..337bfae25b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Jul 31 23:19:06 2013 Tanaka Akira <akr@fsij.org>
+
+ * bignum.c (power_cache_get_power): Change numdigits_ret to size_t *.
+ (big2str_orig): Change len argument to size_t.
+ (big2str_karatsuba): Ditto.
+ (rb_big2str1): Follow the above changes.
+
Wed Jul 31 22:59:47 2013 Kouhei Sutou <kou@cozmixng.org>
* test/rexml/parse/test_notation_declaration.rb: Change class
diff --git a/bignum.c b/bignum.c
index 6b40574ecc..0739c07afb 100644
--- a/bignum.c
+++ b/bignum.c
@@ -4145,12 +4145,12 @@ power_cache_get_power0(int base, int i)
}
static VALUE
-power_cache_get_power(int base, int power_level, long *numdigits_ret)
+power_cache_get_power(int base, int power_level, size_t *numdigits_ret)
{
VALUE power;
power = power_cache_get_power0(base, power_level);
if (numdigits_ret)
- *numdigits_ret = KARATSUBA_BIG2STR_DIGITS * (1 << power_level);
+ *numdigits_ret = KARATSUBA_BIG2STR_DIGITS * ((size_t)1 << power_level);
return power;
}
@@ -4213,9 +4213,10 @@ struct big2str_struct {
};
static long
-big2str_orig(struct big2str_struct *b2s, VALUE x, char* ptr, long len, int trim)
+big2str_orig(struct big2str_struct *b2s, VALUE x, char* ptr, size_t len, int trim)
{
- long i = RBIGNUM_LEN(x), j = len;
+ long i = RBIGNUM_LEN(x);
+ size_t j = len;
BDIGIT* ds = BDIGITS(x);
while (i && j > 0) {
@@ -4246,9 +4247,10 @@ big2str_orig(struct big2str_struct *b2s, VALUE x, char* ptr, long len, int trim)
static long
big2str_karatsuba(struct big2str_struct *b2s, VALUE x, char* ptr,
- int power_level, long len, int trim)
+ int power_level, size_t len, int trim)
{
- long lh, ll, m1;
+ long lh, ll;
+ size_t m1;
VALUE b, q, r;
if (BIGZEROP(x)) {
@@ -4364,11 +4366,11 @@ rb_big2str1(VALUE x, int base, int trim)
xx = rb_big_clone(x);
RBIGNUM_SET_SIGN(xx, 1);
if (power_level < 0) {
- len = off + big2str_orig(&b2s_data, xx, ptr + off, n2, trim);
+ len = off + big2str_orig(&b2s_data, xx, ptr + off, (size_t)n2, trim);
}
else {
len = off + big2str_karatsuba(&b2s_data, xx, ptr + off, power_level,
- n2, trim);
+ (size_t)n2, trim);
}
rb_big_resize(xx, 0);