summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2010-10-07 19:55:03 -0700
committerElliott Hughes <enh@google.com>2010-10-07 19:55:03 -0700
commit0df59ae1c7d720dc6263760a0802aded41793f90 (patch)
tree532120cc25b9376da8c9cb5f99268b69eb4cec8c
parent68dc77f11ac04a34b797d4af716f81505c2f6fa5 (diff)
downloadlibcore-0df59ae1c7d720dc6263760a0802aded41793f90.zip
libcore-0df59ae1c7d720dc6263760a0802aded41793f90.tar.gz
libcore-0df59ae1c7d720dc6263760a0802aded41793f90.tar.bz2
Fix getLong/getDouble for byte[]-backed nio Buffers.
A regression I introduced. Happily, the correct version doesn't sacrifice speed. Bug: 3066167 Change-Id: Idef17012b8d84a05644ba161bfdc462a38cf3326
-rw-r--r--luni/src/main/java/java/nio/HeapByteBuffer.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/luni/src/main/java/java/nio/HeapByteBuffer.java b/luni/src/main/java/java/nio/HeapByteBuffer.java
index 2118115..a01c9d8 100644
--- a/luni/src/main/java/java/nio/HeapByteBuffer.java
+++ b/luni/src/main/java/java/nio/HeapByteBuffer.java
@@ -242,7 +242,7 @@ abstract class HeapByteBuffer extends BaseByteBuffer {
((backingArray[baseOffset++] & 0xff) << 16) |
((backingArray[baseOffset++] & 0xff) << 8) |
((backingArray[baseOffset ] & 0xff) << 0);
- return (((long) h) << 32) | l;
+ return (((long) h) << 32L) | ((long) l) & 0xffffffffL;
} else {
int l = ((backingArray[baseOffset++] & 0xff) << 0) |
((backingArray[baseOffset++] & 0xff) << 8) |
@@ -252,7 +252,7 @@ abstract class HeapByteBuffer extends BaseByteBuffer {
((backingArray[baseOffset++] & 0xff) << 8) |
((backingArray[baseOffset++] & 0xff) << 16) |
((backingArray[baseOffset ] & 0xff) << 24);
- return (((long) h) << 32) | l;
+ return (((long) h) << 32L) | ((long) l) & 0xffffffffL;
}
}