ruby-changes:19926
From: tadf <ko1@a...>
Date: Fri, 10 Jun 2011 00:27:34 +0900 (JST)
Subject: [ruby-changes:19926] tadf:r31973 (trunk): * rational.c (string_to_r): Rational#** may return flonum.
tadf 2011-06-10 00:25:12 +0900 (Fri, 10 Jun 2011) New Revision: 31973 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31973 Log: * rational.c (string_to_r): Rational#** may return flonum. Modified files: trunk/ChangeLog trunk/rational.c Index: ChangeLog =================================================================== --- ChangeLog (revision 31972) +++ ChangeLog (revision 31973) @@ -1,3 +1,7 @@ +Fri Jun 10 00:24:04 2011 Tadayoshi Funaba <tadf@d...> + + * rational.c (string_to_r): Rational#** may return flonum. + Thu Jun 9 23:57:53 2011 Tanaka Akira <akr@f...> * io.c: fix IO.copy_stream interrupt handling. Index: rational.c =================================================================== --- rational.c (revision 31972) +++ rational.c (revision 31973) @@ -2152,7 +2152,7 @@ static VALUE string_to_r(VALUE self) { - VALUE s, a, backref; + VALUE s, a, a1, backref; backref = rb_backref_get(); rb_match_busy(backref); @@ -2162,8 +2162,12 @@ rb_backref_set(backref); - if (!NIL_P(RARRAY_PTR(a)[0])) - return RARRAY_PTR(a)[0]; + a1 = RARRAY_PTR(a)[0]; + if (!NIL_P(a1)) { + if (TYPE(a1) == T_FLOAT) + rb_raise(rb_eFloatDomainError, "Infinity"); + return a1; + } return rb_rational_new1(INT2FIX(0)); } -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/