summaryrefslogtreecommitdiffstats
path: root/random.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-13 16:00:53 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-11-13 16:00:53 +0000
commit5cfe7b5250f3e762be7f36106b1b13e48f7bda1a (patch)
treeb9b571a43d86bda67a18a05d95f0a437b5500b3b /random.c
parente03d90e475e8642daf5d9aee4543be4de8a5928d (diff)
downloadruby-5cfe7b5250f3e762be7f36106b1b13e48f7bda1a.tar.gz
ruby-5cfe7b5250f3e762be7f36106b1b13e48f7bda1a.tar.xz
ruby-5cfe7b5250f3e762be7f36106b1b13e48f7bda1a.zip
* include/ruby/ruby.h: introduce 2 macros:
RFLOAT_VALUE(v), DOUBLE2NUM(dbl). Rename RFloat#value -> RFloat#double_value. Do not touch RFloat#double_value directly. * bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c, pack.c, parse.y, process.c, random.c, sprintf.c, string.c, time.c: apply above changes. * ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'random.c')
-rw-r--r--random.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/random.c b/random.c
index 78174ec69..4e29ff11a 100644
--- a/random.c
+++ b/random.c
@@ -437,14 +437,14 @@ rb_f_rand(int argc, VALUE *argv, VALUE obj)
rb_scan_args(argc, argv, "01", &vmax);
switch (TYPE(vmax)) {
case T_FLOAT:
- if (RFLOAT(vmax)->value <= LONG_MAX && RFLOAT(vmax)->value >= LONG_MIN) {
- max = (long)RFLOAT(vmax)->value;
+ if (RFLOAT_VALUE(vmax) <= LONG_MAX && RFLOAT_VALUE(vmax) >= LONG_MIN) {
+ max = (long)RFLOAT_VALUE(vmax);
break;
}
- if (RFLOAT(vmax)->value < 0)
- vmax = rb_dbl2big(-RFLOAT(vmax)->value);
+ if (RFLOAT_VALUE(vmax) < 0)
+ vmax = rb_dbl2big(-RFLOAT_VALUE(vmax));
else
- vmax = rb_dbl2big(RFLOAT(vmax)->value);
+ vmax = rb_dbl2big(RFLOAT_VALUE(vmax));
/* fall through */
case T_BIGNUM:
bignum:
@@ -457,7 +457,7 @@ rb_f_rand(int argc, VALUE *argv, VALUE obj)
limit = (struct RBignum *)rb_big_minus((VALUE)limit, INT2FIX(1));
if (FIXNUM_P((VALUE)limit)) {
if (FIX2LONG((VALUE)limit) == -1)
- return rb_float_new(genrand_real());
+ return DOUBLE2NUM(genrand_real());
return LONG2NUM(limited_rand(FIX2LONG((VALUE)limit)));
}
return limited_big_rand(limit);
@@ -474,7 +474,7 @@ rb_f_rand(int argc, VALUE *argv, VALUE obj)
}
if (max == 0) {
- return rb_float_new(genrand_real());
+ return DOUBLE2NUM(genrand_real());
}
if (max < 0) max = -max;
val = limited_rand(max-1);