* random.c (int_pair_to_real_inclusive): Use rb_funcall instead of

rb_big_mul because rb_integer_unpack can return a Fixnum.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41162 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2013-06-08 03:01:33 +00:00
Родитель 8ca1e1238e
Коммит 6b5be413bb
2 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -1,3 +1,8 @@
Sat Jun 8 11:59:55 2013 Tanaka Akira <akr@fsij.org>
* random.c (int_pair_to_real_inclusive): Use rb_funcall instead of
rb_big_mul because rb_integer_unpack can return a Fixnum.
Sat Jun 8 11:17:39 2013 Tanaka Akira <akr@fsij.org> Sat Jun 8 11:17:39 2013 Tanaka Akira <akr@fsij.org>
* random.c (int_pair_to_real_inclusive): Use rb_integer_pack. * random.c (int_pair_to_real_inclusive): Use rb_integer_pack.

Просмотреть файл

@ -293,7 +293,7 @@ int_pair_to_real_inclusive(uint32_t a, uint32_t b)
m = rb_integer_unpack(+1, mary, 2, sizeof(uint32_t), 0, m = rb_integer_unpack(+1, mary, 2, sizeof(uint32_t), 0,
INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER); INTEGER_PACK_MSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);
x = rb_big_mul(x, m); x = rb_funcall(x, '*', 1, m);
if (FIXNUM_P(x)) { if (FIXNUM_P(x)) {
#if CHAR_BIT * SIZEOF_LONG > 64 #if CHAR_BIT * SIZEOF_LONG > 64
r = (double)(FIX2ULONG(x) >> 64); r = (double)(FIX2ULONG(x) >> 64);