summaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-17 01:00:53 +0000
committerbryce <bryce@138bc75d-0d04-0410-961f-82ee72b054a4>2001-01-17 01:00:53 +0000
commitd9d97b1d3d778ed875a618cfb23d7af2f7a52bb8 (patch)
treea6e89306ae13b7a6c1e2bdd715c221c90e817f8b /libjava
parent32457ca915dc5a28ee51250a8e9feab91d4982f2 (diff)
downloadgcc-d9d97b1d3d778ed875a618cfb23d7af2f7a52bb8.tar.gz
2001-01-16 Hans Boehm <hans_boehm@hp.com>
* java/math/BigInteger.java (setShiftRight): Only do negative shift if count != 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39080 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/math/BigInteger.java10
2 files changed, 11 insertions, 4 deletions
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 <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
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);
}
}
}