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

ruby-changes:27983

From: akr <ko1@a...>
Date: Mon, 1 Apr 2013 20:08:53 +0900 (JST)
Subject: [ruby-changes:27983] akr:r40035 (trunk): * numeric.c (rb_num2long): Don't use SIGNED_VALUE uselessly.

akr	2013-04-01 20:08:44 +0900 (Mon, 01 Apr 2013)

  New Revision: 40035

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

  Log:
    * numeric.c (rb_num2long): Don't use SIGNED_VALUE uselessly.
      (check_int): Ditto.
      (check_short): Ditto.
      (rb_num2fix): Ditto.
      (rb_num2ulong_internal): Add a cast.

  Modified files:
    trunk/ChangeLog
    trunk/numeric.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 40034)
+++ ChangeLog	(revision 40035)
@@ -1,3 +1,11 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
+Mon Apr  1 20:08:07 2013  Tanaka Akira  <akr@f...>
+
+	* numeric.c (rb_num2long): Don't use SIGNED_VALUE uselessly.
+	  (check_int): Ditto.
+	  (check_short): Ditto.
+	  (rb_num2fix): Ditto.
+	  (rb_num2ulong_internal): Add a cast.
+
 Mon Apr  1 18:41:35 2013  Nobuyoshi Nakada  <nobu@r...>
 
 	* configure.in: skip autoconf 2.64 and 2.66, 2.67 seems short-lived
Index: numeric.c
===================================================================
--- numeric.c	(revision 40034)
+++ numeric.c	(revision 40035)
@@ -1959,7 +1959,7 @@ rb_num2long(VALUE val) https://github.com/ruby/ruby/blob/trunk/numeric.c#L1959
       case T_FLOAT:
 	if (RFLOAT_VALUE(val) < LONG_MAX_PLUS_ONE
 	    && LONG_MIN_MINUS_ONE_IS_LESS_THAN(RFLOAT_VALUE(val))) {
-	    return (SIGNED_VALUE)(RFLOAT_VALUE(val));
+	    return (long)RFLOAT_VALUE(val);
 	}
 	else {
 	    char buf[24];
@@ -1991,7 +1991,7 @@ rb_num2ulong_internal(VALUE val, int *wr https://github.com/ruby/ruby/blob/trunk/numeric.c#L1991
         long l = FIX2LONG(val); /* this is FIX2LONG, inteneded */
         if (wrap_p)
             *wrap_p = l < 0;
-        return l;
+        return (unsigned long)l;
     }
 
     switch (TYPE(val)) {
@@ -2021,8 +2021,8 @@ rb_num2ulong_internal(VALUE val, int *wr https://github.com/ruby/ruby/blob/trunk/numeric.c#L2021
         }
 
       default:
-       val = rb_to_int(val);
-       goto again;
+        val = rb_to_int(val);
+        goto again;
     }
 }
 
@@ -2032,7 +2032,7 @@ rb_num2ulong(VALUE val) https://github.com/ruby/ruby/blob/trunk/numeric.c#L2032
     return rb_num2ulong_internal(val, NULL);
 }
 
-#if SIZEOF_INT < SIZEOF_VALUE
+#if SIZEOF_INT < SIZEOF_LONG
 void
 rb_out_of_int(SIGNED_VALUE num)
 {
@@ -2041,9 +2041,9 @@ rb_out_of_int(SIGNED_VALUE num) https://github.com/ruby/ruby/blob/trunk/numeric.c#L2041
 }
 
 static void
-check_int(SIGNED_VALUE num)
+check_int(long num)
 {
-    if ((SIGNED_VALUE)(int)num != num) {
+    if ((long)(int)num != num) {
 	rb_out_of_int(num);
     }
 }
@@ -2126,9 +2126,9 @@ rb_out_of_short(SIGNED_VALUE num) https://github.com/ruby/ruby/blob/trunk/numeric.c#L2126
 }
 
 static void
-check_short(SIGNED_VALUE num)
+check_short(long num)
 {
-    if ((SIGNED_VALUE)(short)num != num) {
+    if ((long)(short)num != num) {
 	rb_out_of_short(num);
     }
 }
@@ -2193,13 +2193,13 @@ rb_fix2ushort(VALUE val) https://github.com/ruby/ruby/blob/trunk/numeric.c#L2193
 VALUE
 rb_num2fix(VALUE val)
 {
-    SIGNED_VALUE v;
+    long v;
 
     if (FIXNUM_P(val)) return val;
 
     v = rb_num2long(val);
     if (!FIXABLE(v))
-	rb_raise(rb_eRangeError, "integer %"PRIdVALUE " out of range of fixnum", v);
+	rb_raise(rb_eRangeError, "integer %ld out of range of fixnum", v);
     return LONG2FIX(v);
 }
 

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

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