diff options
| author | 2019-07-29 15:35:14 -0700 | |
|---|---|---|
| committer | 2019-07-29 15:35:14 -0700 | |
| commit | 524d0b6f8c2337400decca9458ffdf8e2c0258f6 (patch) | |
| tree | d56f9530e119c85df8e5b564968c4e0f71637bfd | |
| parent | edc6f40a08843a904d9554b3b5ca38637e84e136 (diff) | |
| parent | 1efbccc58d53eb23db75107fcb9535cb46137359 (diff) | |
Merge "Fix regression in PFD#fromData" into qt-r1-dev am: 1775a48935
am: 1efbccc58d
Change-Id: Ifa8cc2718ec176143c835c824c09cccb747914b0
| -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; } /** |