summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2019-07-29 15:10:49 -0700
committer android-build-merger <android-build-merger@google.com> 2019-07-29 15:10:49 -0700
commit1efbccc58d53eb23db75107fcb9535cb46137359 (patch)
treefeb055ed2b3e8c66e98583fbe4935b0a19e35ab0
parent08fef99562c127e11d66c53d0ba24126f9e3df0e (diff)
parent1775a4893597872e9df10e6206022d3df11b5c4a (diff)
Merge "Fix regression in PFD#fromData" into qt-r1-dev
am: 1775a48935 Change-Id: Ib3830e489735019aaa0410bef2282ea80d70cc01
-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;
}
/**