summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2019-09-09 12:51:32 -0700
committer android-build-merger <android-build-merger@google.com> 2019-09-09 12:51:32 -0700
commit77e446821a4346cbe8109ed04531733d21aea303 (patch)
treee64d563c1549c88507276d91d4ef06aa8d1fa1ce
parent3e837c48227ac5090a02517cac8519768b3d01dc (diff)
parent59566aba2ee06d6fd16a4973397d58e2c058b3ff (diff)
Merge "Fix regression in PFD#fromData"
am: 59566aba2e Change-Id: Ib2b5eec2811ec9b856177cbc2b1643ad87a22a8c
-rw-r--r--core/java/android/os/ParcelFileDescriptor.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/core/java/android/os/ParcelFileDescriptor.java b/core/java/android/os/ParcelFileDescriptor.java
index 8355e08b6aa8..2a4576adf192 100644
--- a/core/java/android/os/ParcelFileDescriptor.java
+++ b/core/java/android/os/ParcelFileDescriptor.java
@@ -581,12 +581,16 @@ public class ParcelFileDescriptor implements Parcelable, Closeable {
public static ParcelFileDescriptor fromData(byte[] data, String name) throws IOException {
if (data == null) return null;
MemoryFile file = new MemoryFile(name, data.length);
- if (data.length > 0) {
- file.writeBytes(data, 0, 0, data.length);
+ try {
+ if (data.length > 0) {
+ file.writeBytes(data, 0, 0, data.length);
+ }
+ file.deactivate();
+ FileDescriptor fd = file.getFileDescriptor();
+ return fd != null ? ParcelFileDescriptor.dup(fd) : null;
+ } finally {
+ file.close();
}
- file.deactivate();
- FileDescriptor fd = file.getFileDescriptor();
- return fd != null ? ParcelFileDescriptor.dup(fd) : null;
}
/**