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

ruby-changes:30873

From: naruse <ko1@a...>
Date: Tue, 17 Sep 2013 10:38:13 +0900 (JST)
Subject: [ruby-changes:30873] naruse:r42952 (trunk): Revert r42942; a revert requires a reason

naruse	2013-09-17 10:38:07 +0900 (Tue, 17 Sep 2013)

  New Revision: 42952

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=42952

  Log:
    Revert r42942; a revert requires a reason
    
    * rational.c (nurat_div): reverted r28844, r28886 and r28887.

  Modified files:
    trunk/ChangeLog
    trunk/rational.c
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 42951)
+++ ChangeLog	(revision 42952)
@@ -8,10 +8,6 @@ Mon Sep 16 00:44:23 2013  Masaki Matsush https://github.com/ruby/ruby/blob/trunk/ChangeLog#L8
 	* ext/socket/mkconstants.rb: define MSG_FASTOPEN.
 	  [ruby-core:57138] [Feature #8897]
 
-Sun Sep 15 13:31:23 2013  Tadayoshi Funaba  <tadf@d...>
-
-	* rational.c (nurat_div): reverted r28844, r28886 and r28887.
-
 Sat Sep 14 06:08:10 2013  Eric Hodel  <drbrain@s...>
 
 	* dir.c (dir_s_glob):  [DOC] Improve wording and layout.
Index: rational.c
===================================================================
--- rational.c	(revision 42951)
+++ rational.c	(revision 42952)
@@ -950,8 +950,19 @@ nurat_div(VALUE self, VALUE other) https://github.com/ruby/ruby/blob/trunk/rational.c#L950
 			    other, ONE, '/');
 	}
     }
-    else if (RB_TYPE_P(other, T_FLOAT))
+    else if (RB_TYPE_P(other, T_FLOAT)) {
+	{
+	    double x = RFLOAT_VALUE(other), den;
+	    get_dat1(self);
+
+	    if (isnan(x)) return DBL2NUM(NAN);
+	    if (isinf(x)) return INT2FIX(0);
+	    if (x != 0.0 && modf(x, &den) == 0.0) {
+		return rb_rational_raw2(dat->num, f_mul(rb_dbl2big(den), dat->den));
+	    }
+	}
 	return rb_funcall(f_to_f(self), '/', 1, other);
+    }
     else if (RB_TYPE_P(other, T_RATIONAL)) {
 	if (f_zero_p(other))
 	    rb_raise_zerodiv();

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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