summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasey Dahlin <sadmac@google.com>2015-11-18 21:42:30 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-11-18 21:42:30 +0000
commitfb92cfcd3e8977a6cac0147de80bf2a0fb6a2d87 (patch)
treeae67c44c4486dc5c17ba94a5e8c8fc1468deeaef
parent0dd1a5d2f4e69c5df233fa9468191c03dc9b639f (diff)
parent5cd09786eb4ff6e99351e8a317205a5efd12ac74 (diff)
downloadnative-fb92cfcd3e8977a6cac0147de80bf2a0fb6a2d87.tar.gz
Merge "Revert "Add support for unique_fds and vectors of file descriptors""
am: 5cd09786eb * commit '5cd09786eb4ff6e99351e8a317205a5efd12ac74': Revert "Add support for unique_fds and vectors of file descriptors"
-rw-r--r--include/binder/Parcel.h21
-rw-r--r--libs/binder/Android.mk4
-rw-r--r--libs/binder/Parcel.cpp44
3 files changed, 9 insertions, 60 deletions
diff --git a/include/binder/Parcel.h b/include/binder/Parcel.h
index ed3023941d..430c3ff00c 100644
--- a/include/binder/Parcel.h
+++ b/include/binder/Parcel.h
@@ -19,7 +19,6 @@
#include <vector>
-#include <base/unique_fd.h>
#include <cutils/native_handle.h>
#include <utils/Errors.h>
#include <utils/RefBase.h>
@@ -150,17 +149,6 @@ public:
// will be closed once the parcel is destroyed.
status_t writeDupFileDescriptor(int fd);
- // Place a file descriptor into the parcel. This will not affect the
- // semantics of the smart file descriptor. A new descriptor will be
- // created, and will be closed when the parcel is destroyed.
- status_t writeUniqueFileDescriptor(
- const android::base::unique_fd& fd);
-
- // Place a vector of file desciptors into the parcel. Each descriptor is
- // dup'd as in writeDupFileDescriptor
- status_t writeUniqueFileDescriptorVector(
- const std::vector<android::base::unique_fd>& val);
-
// Writes a blob to the parcel.
// If the blob is small, then it is stored in-place, otherwise it is
// transferred by way of an anonymous shared memory region. Prefer sending
@@ -253,15 +241,6 @@ public:
// in the parcel, which you do not own -- use dup() to get your own copy.
int readFileDescriptor() const;
- // Retrieve a smart file descriptor from the parcel.
- status_t readUniqueFileDescriptor(
- android::base::unique_fd* val) const;
-
-
- // Retrieve a vector of smart file descriptors from the parcel.
- status_t readUniqueFileDescriptorVector(
- std::vector<android::base::unique_fd>* val) const;
-
// Reads a blob from the parcel.
// The caller should call release() on the blob after reading its contents.
status_t readBlob(size_t len, ReadableBlob* outBlob) const;
diff --git a/libs/binder/Android.mk b/libs/binder/Android.mk
index 5e85afd1c0..bd11177c43 100644
--- a/libs/binder/Android.mk
+++ b/libs/binder/Android.mk
@@ -43,7 +43,7 @@ LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libbinder
-LOCAL_SHARED_LIBRARIES := liblog libcutils libutils libbase
+LOCAL_SHARED_LIBRARIES := liblog libcutils libutils
LOCAL_CLANG := true
LOCAL_SANITIZE := integer
@@ -58,7 +58,7 @@ include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libbinder
-LOCAL_STATIC_LIBRARIES += libutils libbase
+LOCAL_STATIC_LIBRARIES += libutils
LOCAL_SRC_FILES := $(sources)
ifneq ($(TARGET_USES_64_BIT_BINDER),true)
ifneq ($(TARGET_IS_64_BIT),true)
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 92b80e9c6a..1b41eae631 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -80,8 +80,6 @@ struct small_flat_data
namespace android {
-using android::base::unique_fd;
-
static pthread_mutex_t gParcelGlobalAllocSizeLock = PTHREAD_MUTEX_INITIALIZER;
static size_t gParcelGlobalAllocSize = 0;
static size_t gParcelGlobalAllocCount = 0;
@@ -1075,20 +1073,12 @@ status_t Parcel::writeDupFileDescriptor(int fd)
return -errno;
}
status_t err = writeFileDescriptor(dupFd, true /*takeOwnership*/);
- if (err != OK) {
+ if (err) {
close(dupFd);
}
return err;
}
-status_t Parcel::writeUniqueFileDescriptor(const unique_fd& fd) {
- return writeDupFileDescriptor(fd.get());
-}
-
-status_t Parcel::writeUniqueFileDescriptorVector(const std::vector<unique_fd>& val) {
- return writeTypedVector(val, this, &Parcel::writeUniqueFileDescriptor);
-}
-
status_t Parcel::writeBlob(size_t len, bool mutableCopy, WritableBlob* outBlob)
{
if (len > INT32_MAX) {
@@ -1690,36 +1680,16 @@ native_handle* Parcel::readNativeHandle() const
int Parcel::readFileDescriptor() const
{
const flat_binder_object* flat = readObject(true);
-
- if (flat && flat->type == BINDER_TYPE_FD) {
- return flat->handle;
+ if (flat) {
+ switch (flat->type) {
+ case BINDER_TYPE_FD:
+ //ALOGI("Returning file descriptor %ld from parcel %p", flat->handle, this);
+ return flat->handle;
+ }
}
-
return BAD_TYPE;
}
-status_t Parcel::readUniqueFileDescriptor(unique_fd* val) const
-{
- int got = readFileDescriptor();
-
- if (got == BAD_TYPE) {
- return BAD_TYPE;
- }
-
- val->reset(dup(got));
-
- if (val->get() < 0) {
- return BAD_VALUE;
- }
-
- return OK;
-}
-
-
-status_t Parcel::readUniqueFileDescriptorVector(std::vector<unique_fd>* val) const {
- return readTypedVector(val, this, &Parcel::readUniqueFileDescriptor);
-}
-
status_t Parcel::readBlob(size_t len, ReadableBlob* outBlob) const
{
int32_t blobType;