Fix unwanted sign-extention when converting byte -> int
byte(255) converts to int(-1). This is not what we want, we want int(255), in other words unsigned conversion. This bug is causing premature EOF when read() is called, because when a byte(255) is returned, it gets sign-extend to int(-1), causing the caller to think EOF is reached. Bug: 217427392 Test: Presubmit Change-Id: I8ee864816c77cfe2900f5e300d7d4411cce6753a
This commit is contained in:
@@ -177,7 +177,7 @@ public class SparseInputStream extends InputStream {
|
||||
ret = 0;
|
||||
break;
|
||||
case SparseChunk.FILL:
|
||||
ret = mCur.fill[(4 - ((int) mLeft & 0x3)) & 0x3];
|
||||
ret = Byte.toUnsignedInt(mCur.fill[(4 - ((int) mLeft & 0x3)) & 0x3]);
|
||||
break;
|
||||
default:
|
||||
throw new IOException("Unsupported Chunk:" + mCur.toString());
|
||||
|
||||
Reference in New Issue
Block a user