commit | 2553fcec830a79866db009801c3651bbf39a1666 | [log] [tgz] |
---|---|---|
author | Louis Wasserman <lowasser@google.com> | Thu Feb 18 14:06:03 2016 -0800 |
committer | Louis Wasserman <lowasser@google.com> | Thu Feb 18 14:06:03 2016 -0800 |
tree | 329ba6276083068583cd52020d4a0ac82009ee37 | |
parent | f4e0726f121244ab9d2231451f060e12c6424486 [diff] |
Fix a bug in Long.highestOneBit on GWT. Change-Id: I50ddd063b7cd363e8f3ed41fef7ed3cea447ab7f
diff --git a/user/super/com/google/gwt/emul/java/lang/Long.java b/user/super/com/google/gwt/emul/java/lang/Long.java index e6313d5..7115944 100644 --- a/user/super/com/google/gwt/emul/java/lang/Long.java +++ b/user/super/com/google/gwt/emul/java/lang/Long.java
@@ -66,7 +66,7 @@ if (high != 0) { return ((long) Integer.highestOneBit(high)) << 32; } else { - return Integer.highestOneBit((int) i); + return Integer.highestOneBit((int) i) & 0xFFFFFFFFL; } }
diff --git a/user/test/com/google/gwt/emultest/java/lang/LongTest.java b/user/test/com/google/gwt/emultest/java/lang/LongTest.java index df38a56..0f0ab36 100644 --- a/user/test/com/google/gwt/emultest/java/lang/LongTest.java +++ b/user/test/com/google/gwt/emultest/java/lang/LongTest.java
@@ -55,6 +55,7 @@ assertEquals(Long.MIN_VALUE, Long.highestOneBit(-256)); assertEquals(1, Long.highestOneBit(1)); assertEquals(0x80, Long.highestOneBit(0x88)); + assertEquals(1L << 31, Long.highestOneBit(1L << 31)); assertEquals(0x4000000000000000L, Long.highestOneBit(Long.MAX_VALUE)); }