зеркало из https://github.com/github/ruby.git
{Fixnum,Bignum}#size is unified into Integer.
* numeric.c (int_size): {Fixnum,Bignum}#size is unified into Integer. * bignum.c (rb_big_size_m): Don't define Bignum#size. * internal.h (rb_big_size_m): Declared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54780 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
05bd6f8369
Коммит
8f045eddb2
|
@ -1,3 +1,11 @@
|
|||
Tue Apr 26 20:46:16 2016 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* numeric.c (int_size): {Fixnum,Bignum}#size is unified into Integer.
|
||||
|
||||
* bignum.c (rb_big_size_m): Don't define Bignum#size.
|
||||
|
||||
* internal.h (rb_big_size_m): Declared.
|
||||
|
||||
Tue Apr 26 20:09:08 2016 Tanaka Akira <akr@fsij.org>
|
||||
|
||||
* numeric.c (rb_int_bit_length): {Fixnum,Bignum}#bit_length is
|
||||
|
|
15
bignum.c
15
bignum.c
|
@ -6902,19 +6902,7 @@ rb_big_size(VALUE big)
|
|||
return BIGSIZE(big);
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* big.size -> integer
|
||||
*
|
||||
* Returns the number of bytes in the machine representation of
|
||||
* <i>big</i>.
|
||||
*
|
||||
* (256**10 - 1).size #=> 12
|
||||
* (256**20 - 1).size #=> 20
|
||||
* (256**40 - 1).size #=> 40
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
VALUE
|
||||
rb_big_size_m(VALUE big)
|
||||
{
|
||||
return SIZET2NUM(rb_big_size(big));
|
||||
|
@ -7043,7 +7031,6 @@ Init_Bignum(void)
|
|||
rb_define_method(rb_cBignum, "<", big_lt, 1);
|
||||
rb_define_method(rb_cBignum, "<=", big_le, 1);
|
||||
rb_define_method(rb_cBignum, "===", rb_big_eq, 1);
|
||||
rb_define_method(rb_cBignum, "size", rb_big_size_m, 0);
|
||||
|
||||
#ifdef USE_GMP
|
||||
/* The version of loaded GMP. */
|
||||
|
|
|
@ -779,6 +779,7 @@ VALUE rb_integer_float_cmp(VALUE x, VALUE y);
|
|||
VALUE rb_integer_float_eq(VALUE x, VALUE y);
|
||||
VALUE rb_cstr_parse_inum(const char *str, ssize_t len, char **endp, int base);
|
||||
VALUE rb_big_abs(VALUE x);
|
||||
VALUE rb_big_size_m(VALUE big);
|
||||
VALUE rb_big_bit_length(VALUE big);
|
||||
|
||||
/* class.c */
|
||||
|
|
23
numeric.c
23
numeric.c
|
@ -4104,21 +4104,36 @@ int_abs(VALUE num)
|
|||
return Qnil;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
fix_size(VALUE fix)
|
||||
{
|
||||
return INT2FIX(sizeof(long));
|
||||
}
|
||||
|
||||
/*
|
||||
* call-seq:
|
||||
* fix.size -> fixnum
|
||||
* int.size -> int
|
||||
*
|
||||
* Returns the number of bytes in the machine representation of +fix+.
|
||||
*
|
||||
* 1.size #=> 4
|
||||
* -1.size #=> 4
|
||||
* 2147483647.size #=> 4
|
||||
* (256**10 - 1).size #=> 12
|
||||
* (256**20 - 1).size #=> 20
|
||||
* (256**40 - 1).size #=> 40
|
||||
*/
|
||||
|
||||
static VALUE
|
||||
fix_size(VALUE fix)
|
||||
int_size(VALUE num)
|
||||
{
|
||||
return INT2FIX(sizeof(long));
|
||||
if (FIXNUM_P(num)) {
|
||||
return fix_size(num);
|
||||
}
|
||||
else if (RB_TYPE_P(num, T_BIGNUM)) {
|
||||
return rb_big_size_m(num);
|
||||
}
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
|
@ -4669,7 +4684,7 @@ Init_Numeric(void)
|
|||
rb_define_method(rb_cFixnum, "<<", rb_fix_lshift, 1);
|
||||
rb_define_method(rb_cFixnum, ">>", rb_fix_rshift, 1);
|
||||
|
||||
rb_define_method(rb_cFixnum, "size", fix_size, 0);
|
||||
rb_define_method(rb_cInteger, "size", int_size, 0);
|
||||
rb_define_method(rb_cInteger, "bit_length", rb_int_bit_length, 0);
|
||||
rb_define_method(rb_cFixnum, "succ", fix_succ, 0);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче