mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* numeric.c (flo_hash, int_chr): fixed type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
441dbecf43
commit
41d8e49dc5
2 changed files with 9 additions and 5 deletions
|
@ -1,3 +1,7 @@
|
||||||
|
Thu Jan 14 13:06:58 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* numeric.c (flo_hash, int_chr): fixed type.
|
||||||
|
|
||||||
Thu Jan 14 12:50:37 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Thu Jan 14 12:50:37 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* string.c (rb_str_concat): fixed range check for Fixnum, and
|
* string.c (rb_str_concat): fixed range check for Fixnum, and
|
||||||
|
|
10
numeric.c
10
numeric.c
|
@ -566,7 +566,7 @@ flo_to_s(VALUE flt)
|
||||||
|
|
||||||
if (isinf(value))
|
if (isinf(value))
|
||||||
return rb_usascii_str_new2(value < 0 ? "-Infinity" : "Infinity");
|
return rb_usascii_str_new2(value < 0 ? "-Infinity" : "Infinity");
|
||||||
else if(isnan(value))
|
else if (isnan(value))
|
||||||
return rb_usascii_str_new2("NaN");
|
return rb_usascii_str_new2("NaN");
|
||||||
|
|
||||||
# define FLOFMT(buf, size, fmt, prec, val) snprintf(buf, size, fmt, prec, val), \
|
# define FLOFMT(buf, size, fmt, prec, val) snprintf(buf, size, fmt, prec, val), \
|
||||||
|
@ -956,7 +956,7 @@ flo_hash(VALUE num)
|
||||||
/* normalize -0.0 to 0.0 */
|
/* normalize -0.0 to 0.0 */
|
||||||
if (d == 0.0) d = 0.0;
|
if (d == 0.0) d = 0.0;
|
||||||
hash = rb_memhash(&d, sizeof(d));
|
hash = rb_memhash(&d, sizeof(d));
|
||||||
return INT2FIX(hash);
|
return LONG2FIX(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
|
@ -1975,7 +1975,7 @@ int_chr(int argc, VALUE *argv, VALUE num)
|
||||||
{
|
{
|
||||||
char c;
|
char c;
|
||||||
int n;
|
int n;
|
||||||
long i = NUM2LONG(num);
|
SIGNED_VALUE i = NUM2LONG(num);
|
||||||
rb_encoding *enc;
|
rb_encoding *enc;
|
||||||
VALUE str;
|
VALUE str;
|
||||||
|
|
||||||
|
@ -2006,8 +2006,8 @@ int_chr(int argc, VALUE *argv, VALUE num)
|
||||||
enc = rb_to_encoding(argv[0]);
|
enc = rb_to_encoding(argv[0]);
|
||||||
if (!enc) enc = rb_ascii8bit_encoding();
|
if (!enc) enc = rb_ascii8bit_encoding();
|
||||||
decode:
|
decode:
|
||||||
#if SIZEOF_INT < SIZEOF_LONG
|
#if SIZEOF_INT < SIZEOF_VALUE
|
||||||
if (i > INT_MAX) goto out_of_range;
|
if (i > UINT_MAX) goto out_of_range;
|
||||||
#endif
|
#endif
|
||||||
if (i < 0 || (n = rb_enc_codelen((int)i, enc)) <= 0) goto out_of_range;
|
if (i < 0 || (n = rb_enc_codelen((int)i, enc)) <= 0) goto out_of_range;
|
||||||
str = rb_enc_str_new(0, n, enc);
|
str = rb_enc_str_new(0, n, enc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue