diff options
author | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-07-15 12:55:23 +0000 |
---|---|---|
committer | mame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-07-15 12:55:23 +0000 |
commit | b79e96ae62bf61530c955053c61125f652c2a8fe (patch) | |
tree | ec169812f3ad122da52c6785c48d1447257aa873 | |
parent | dc7ba7e49a62ada70e20a971542841ca9057a0b9 (diff) |
* 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
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | numeric.c | 2 |
2 files changed, 7 insertions, 1 deletions
@@ -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); } |