diff options
| author | 2019-07-29 15:10:49 -0700 | |
|---|---|---|
| committer | 2019-07-29 15:10:49 -0700 | |
| commit | 1efbccc58d53eb23db75107fcb9535cb46137359 (patch) | |
| tree | feb055ed2b3e8c66e98583fbe4935b0a19e35ab0 | |
| parent | 08fef99562c127e11d66c53d0ba24126f9e3df0e (diff) | |
| parent | 1775a4893597872e9df10e6206022d3df11b5c4a (diff) | |
Merge "Fix regression in PFD#fromData" into qt-r1-dev
am: 1775a48935
Change-Id: Ib3830e489735019aaa0410bef2282ea80d70cc01
| -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; } /** |