Merge "libbinder_ndk: don't borrow fd into unique_fd"
diff --git a/libs/binder/ndk/parcel.cpp b/libs/binder/ndk/parcel.cpp
index 703ceae..c33c44f 100644
--- a/libs/binder/ndk/parcel.cpp
+++ b/libs/binder/ndk/parcel.cpp
@@ -247,15 +247,12 @@
if (fd != -1) {
return STATUS_UNKNOWN_ERROR;
}
- return parcel->get()->writeInt32(0); // null
+ return PruneStatusT(parcel->get()->writeInt32(0)); // null
}
+ status_t status = parcel->get()->writeInt32(1); // not-null
+ if (status != STATUS_OK) return PruneStatusT(status);
- ParcelFileDescriptor parcelFd = ParcelFileDescriptor(unique_fd(fd));
- status_t status = parcel->get()->writeParcelable(parcelFd);
-
- // ownership is retained by caller
- (void)parcelFd.release().release();
-
+ status = parcel->get()->writeDupParcelFileDescriptor(fd);
return PruneStatusT(status);
}