summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java20
1 files changed, 8 insertions, 12 deletions
diff --git a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java
index 4117d0f07e0f..7d2326693a17 100644
--- a/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java
+++ b/packages/DynamicSystemInstallationService/src/com/android/dynsystem/SparseInputStream.java
@@ -133,36 +133,32 @@ public class SparseInputStream extends InputStream {
return mLeft == 0;
}
- /**
- * It overrides the InputStream.read(byte[] buf)
- */
- public int read(byte[] buf) throws IOException {
+ @Override
+ public int read(byte[] buf, int off, int len) throws IOException {
if (!mIsSparse) {
- return mIn.read(buf);
+ return mIn.read(buf, off, len);
}
if (prepareChunk()) return -1;
int n = -1;
switch (mCur.mChunkType) {
case SparseChunk.RAW:
- n = mIn.read(buf, 0, (int) min(mLeft, buf.length));
+ n = mIn.read(buf, off, (int) min(mLeft, len));
mLeft -= n;
return n;
case SparseChunk.DONTCARE:
- n = (int) min(mLeft, buf.length);
- Arrays.fill(buf, 0, n - 1, (byte) 0);
+ n = (int) min(mLeft, len);
+ Arrays.fill(buf, off, off + n, (byte) 0);
mLeft -= n;
return n;
case SparseChunk.FILL:
// The FILL type is rarely used, so use a simple implmentation.
- return super.read(buf);
+ return super.read(buf, off, len);
default:
throw new IOException("Unsupported Chunk:" + mCur.toString());
}
}
- /**
- * It overrides the InputStream.read()
- */
+ @Override
public int read() throws IOException {
if (!mIsSparse) {
return mIn.read();