diff options
| -rw-r--r-- | core/java/android/os/ParcelFileDescriptor.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java index d5491d3a808a..7702c174ba2f 100644 --- a/core/java/android/os/ParcelFileDescriptor.java +++ b/core/java/android/os/ParcelFileDescriptor.java @@ -864,6 +864,34 @@ public class ParcelFileDescriptor implements Parcelable, Closeable { super.close(); } } + + @Override + public int read() throws IOException { + final int result = super.read(); + if (result == -1 && mPfd.canDetectErrors()) { + // Check for errors only on EOF, to minimize overhead. + mPfd.checkError(); + } + return result; + } + + @Override + public int read(byte[] b) throws IOException { + final int result = super.read(b); + if (result == -1 && mPfd.canDetectErrors()) { + mPfd.checkError(); + } + return result; + } + + @Override + public int read(byte[] b, int off, int len) throws IOException { + final int result = super.read(b, off, len); + if (result == -1 && mPfd.canDetectErrors()) { + mPfd.checkError(); + } + return result; + } } /** |