[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]