diff options
| author | 2019-09-09 12:51:32 -0700 | |
|---|---|---|
| committer | 2019-09-09 12:51:32 -0700 | |
| commit | 77e446821a4346cbe8109ed04531733d21aea303 (patch) | |
| tree | e64d563c1549c88507276d91d4ef06aa8d1fa1ce | |
| parent | 3e837c48227ac5090a02517cac8519768b3d01dc (diff) | |
| parent | 59566aba2ee06d6fd16a4973397d58e2c058b3ff (diff) | |
Merge "Fix regression in PFD#fromData"
am: 59566aba2e
Change-Id: Ib2b5eec2811ec9b856177cbc2b1643ad87a22a8c
| -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; } /** |