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

ruby-changes:15250

From: akr <ko1@a...>
Date: Thu, 1 Apr 2010 04:31:50 +0900 (JST)
Subject: [ruby-changes:15250] Ruby:r27132 (trunk): * time.c (long_mul): overflow condition changed.

akr	2010-04-01 04:31:08 +0900 (Thu, 01 Apr 2010)

  New Revision: 27132

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

  Log:
    * time.c (long_mul): overflow condition changed.
      (wi_mul): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/time.c

Index: time.c
===================================================================
--- time.c	(revision 27131)
+++ time.c	(revision 27132)
@@ -103,8 +103,8 @@
     else {
 	b = (unsigned long)y;
     }
-    c = a * b;
-    if (c / b == a) {
+    if (a <= ULONG_MAX / b) {
+        c = a * b;
 	if (s < 0) {
 	    if (c <= (unsigned long)LONG_MAX + 1) {
 		*z = -(long)c;
@@ -478,8 +478,8 @@
     else {
 	b = (uwideint_t)y;
     }
-    c = a * b;
-    if (c / b == a) {
+    if (a <= UWIDEINT_MAX / b) {
+        c = a * b;
 	if (s < 0) {
 	    if (c <= (uwideint_t)WIDEINT_MAX + 1) {
 		*z = -(wideint_t)c;
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27131)
+++ ChangeLog	(revision 27132)
@@ -1,3 +1,8 @@
+Thu Apr  1 04:30:11 2010  Tanaka Akira  <akr@f...>
+
+	* time.c (long_mul): overflow condition changed.
+	  (wi_mul): ditto.
+
 Wed Mar 31 23:33:29 2010  Tanaka Akira  <akr@f...>
 
 	* time.c (long_mul): extracted from mul and avoid integer overflow.

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

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