summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2019-07-29 15:35:14 -0700
committer android-build-merger <android-build-merger@google.com> 2019-07-29 15:35:14 -0700
commit524d0b6f8c2337400decca9458ffdf8e2c0258f6 (patch)
treed56f9530e119c85df8e5b564968c4e0f71637bfd
parentedc6f40a08843a904d9554b3b5ca38637e84e136 (diff)
parent1efbccc58d53eb23db75107fcb9535cb46137359 (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.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;
}
/**