diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-01 12:02:36 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-09-01 12:02:36 +0000 |
commit | 2c8e7a50c1db8fea3fb012052828ad1eea51883f (patch) | |
tree | 9948c4ef01b8662c9d14a96cc228d7844af68b71 /sprintf.c | |
parent | 0c5e6ab2bb6726b0d70e99db25d5369e196d8ddc (diff) |
* include/ruby/ruby.h (struct RBignum): embed digits in RBignum for
small bignums.
* bignum.c: RBignum embeded digits implemented.
* include/ruby/intern.h: declare rb_big_resize.
* gc.c: don't free embedded digits.
* numeric.c: replace direct bignum field accessor by abstract field
accessor such as RBIGNUM(val)->sign to RBIGNUM_SIGN(val).
* sprintf.c: ditto.
* compar.c: ditto.
* marshal.c: ditto.
* random.c: ditto.
* .gdbinit: support embedded small bignums.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'sprintf.c')
-rw-r--r-- | sprintf.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -658,11 +658,11 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) } else { volatile VALUE tmp1; - if (!RBIGNUM(val)->sign) { + if (!RBIGNUM_SIGN(val)) { val = rb_big_clone(val); rb_big_2comp(val); } - tmp1 = tmp = rb_big2str0(val, base, RBIGNUM(val)->sign); + tmp1 = tmp = rb_big2str0(val, base, RBIGNUM_SIGN(val)); s = RSTRING_PTR(tmp); if (*s == '-') { if (base == 10) { @@ -729,7 +729,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) else { char c; - if (!sign && bignum && !RBIGNUM(val)->sign) + if (!sign && bignum && !RBIGNUM_SIGN(val)) c = sign_bits(base, p); else c = '0'; |