BigInteger.java (setShiftRight): Only do negative shift if count != 0.
authorHans Boehm <Hans_Boehm@hp.com>
Wed, 17 Jan 2001 01:00:53 +0000 (01:00 +0000)
committerBryce McKinlay <bryce@gcc.gnu.org>
Wed, 17 Jan 2001 01:00:53 +0000 (01:00 +0000)
2001-01-16  Hans Boehm  <hans_boehm@hp.com>

* java/math/BigInteger.java (setShiftRight): Only do negative shift
if count != 0.

From-SVN: r39080

libjava/ChangeLog
libjava/java/math/BigInteger.java

index 3ed758f2920702d6f06704a1bcfb7b6e24425f27..5b13ec04c9c81080929d7ec5c311726dfaf04aa4 100644 (file)
@@ -1,3 +1,8 @@
+2001-01-16  Hans Boehm  <hans_boehm@hp.com>
+
+       * java/math/BigInteger.java (setShiftRight): Only do negative shift
+       if count != 0.
+
 2001-01-14  Mark Wielaard  <mark@klomp.org>
        * java/net/URLDecoder.java: Thanks Edgar Villanueva (edgarvil@home.com)
        (decode): Merge comments with Classpath, don't throw Exception
index ed1f4f044cbea516c294ed65103465e904d82aff..d3fcb023475cd5f34e19eeaac5a8890d532fd38f 100644 (file)
@@ -1401,11 +1401,13 @@ public class BigInteger extends Number implements Comparable
              realloc(d_len);
            if (count == 0)
              System.arraycopy(x.words, word_count, words, 0, d_len);
-           else
-             MPN.rshift(words, x.words, word_count, d_len, count);
+            else
+             {
+               MPN.rshift(words, x.words, word_count, d_len, count);
+               if (neg)
+                 words[d_len-1] |= -1 << (32 - count);
+              }
            ival = d_len;
-           if (neg)
-             words[ival-1] |= -1 << (32 - count);
          }
       }
   }