Merge pull request #1337 from gideondk/master

"Recover" unsigned byte value from signed bytes in "getLongPart"
This commit is contained in:
Roland Kuhn 2013-04-15 08:06:44 -07:00
commit 80548ca0b3

View file

@ -529,11 +529,11 @@ abstract class ByteIterator extends BufferedIterator[Byte] {
def getLongPart(n: Int)(implicit byteOrder: ByteOrder): Long = {
if (byteOrder == ByteOrder.BIG_ENDIAN) {
var x = 0L
(1 to n) foreach (_ x = (x << 8) | next())
(1 to n) foreach (_ x = (x << 8) | (next() & 0xff))
x
} else if (byteOrder == ByteOrder.LITTLE_ENDIAN) {
var x = 0L
(0 until n) foreach (i x |= next() << 8 * i)
(0 until n) foreach (i x |= (next() & 0xff) << 8 * i)
x
} else throw new IllegalArgumentException("Unknown byte order " + byteOrder)
}