* numeric.c (fix_divide): must not use rb_rational_new1 for coercion

because it returns an argument itself when canonical mode is set.
  [ruby-core:31279]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
mame 2010-07-15 12:55:23 +00:00
Родитель dc7ba7e49a
Коммит b79e96ae62
2 изменённых файлов: 7 добавлений и 1 удалений

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

@ -1,3 +1,9 @@
Thu Jul 15 21:43:35 2010 Yusuke Endoh <mame@tsg.ne.jp>
* numeric.c (fix_divide): must not use rb_rational_new1 for coercion
because it returns an argument itself when canonical mode is set.
[ruby-core:31279]
Thu Jul 15 21:38:31 2010 Yusuke Endoh <mame@tsg.ne.jp>
* proc.c (bm_free): fix memory leak. [ruby-core:30869] [Bug #3466]

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

@ -2429,7 +2429,7 @@ fix_divide(VALUE x, VALUE y, ID op)
case T_RATIONAL:
if (op == '/' && FIX2LONG(x) == 1)
return rb_rational_reciprocal(y);
return rb_funcall(rb_rational_new1(x), op, 1, y);
/* fall through */
default:
return rb_num_coerce_bin(x, y, op);
}