From: Hans Boehm Date: Wed, 17 Jan 2001 01:00:53 +0000 (+0000) Subject: BigInteger.java (setShiftRight): Only do negative shift if count != 0. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c7fb0b92185d393914931d0e1c48de3dc8bb91a7;p=gcc.git BigInteger.java (setShiftRight): Only do negative shift if count != 0. 2001-01-16 Hans Boehm * java/math/BigInteger.java (setShiftRight): Only do negative shift if count != 0. From-SVN: r39080 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3ed758f2920..5b13ec04c9c 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2001-01-16 Hans Boehm + + * java/math/BigInteger.java (setShiftRight): Only do negative shift + if count != 0. + 2001-01-14 Mark Wielaard * java/net/URLDecoder.java: Thanks Edgar Villanueva (edgarvil@home.com) (decode): Merge comments with Classpath, don't throw Exception diff --git a/libjava/java/math/BigInteger.java b/libjava/java/math/BigInteger.java index ed1f4f044cb..d3fcb023475 100644 --- a/libjava/java/math/BigInteger.java +++ b/libjava/java/math/BigInteger.java @@ -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); } } }