diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-14 23:26:47 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2019-08-14 23:26:47 +0000 |
commit | 474dda22b5aa88760f8804f789f1b8e1b0910d7c (patch) | |
tree | debff4faaba37c2a1c66bfdcaf8e291c5386a9cf | |
parent | c0fbdf45d7c9826533186751a03c27e500cac78e (diff) | |
parent | 371c5e6343a5c093ec8637e5c38f16b9b939c658 (diff) | |
download | base-474dda22b5aa88760f8804f789f1b8e1b0910d7c.tar.gz |
Merge cherrypicks of [9200581, 9200376, 9200474, 9200583, 9200491, 9200584, 9200505, 9200585, 9200475, 9200586, 9200476, 9200588, 9200589, 9200639] into qt-release
Change-Id: I591f441572b3edc2b5f5e8093556a68e1c7970c9
-rw-r--r-- | core/java/android/os/ParcelFileDescriptor.java | 14 |
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; } /** |