From d4ecccfd206604a9b2d8a1220844fc2df85a5998 Mon Sep 17 00:00:00 2001 From: Mark Salyzyn Date: Fri, 30 May 2014 16:35:57 -0700 Subject: [PATCH] binder: Turn on -Werror Change-Id: I0ee785927a7ae5f731b02176b0b781b87c22a24e --- libs/binder/Android.mk | 2 + libs/binder/BpBinder.cpp | 12 ++-- libs/binder/Parcel.cpp | 124 +++++++++++++++++++-------------------- 3 files changed, 70 insertions(+), 68 deletions(-) diff --git a/libs/binder/Android.mk b/libs/binder/Android.mk index 3d873c57f..6781407e7 100644 --- a/libs/binder/Android.mk +++ b/libs/binder/Android.mk @@ -46,6 +46,7 @@ ifneq ($(TARGET_IS_64_BIT),true) LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 endif endif +LOCAL_CFLAGS += -Werror include $(BUILD_SHARED_LIBRARY) include $(CLEAR_VARS) @@ -57,4 +58,5 @@ ifneq ($(TARGET_IS_64_BIT),true) LOCAL_CFLAGS += -DBINDER_IPC_32BIT=1 endif endif +LOCAL_CFLAGS += -Werror include $(BUILD_STATIC_LIBRARY) diff --git a/libs/binder/BpBinder.cpp b/libs/binder/BpBinder.cpp index 1bad67af2..101de7efd 100644 --- a/libs/binder/BpBinder.cpp +++ b/libs/binder/BpBinder.cpp @@ -73,7 +73,7 @@ void BpBinder::ObjectManager::detach(const void* objectID) void BpBinder::ObjectManager::kill() { const size_t N = mObjects.size(); - ALOGV("Killing %d objects in manager %p", N, this); + ALOGV("Killing %zu objects in manager %p", N, this); for (size_t i=0; isize() : 0); + ALOGV("Reporting death of proxy %p for %zu recipients\n", + this, obits ? obits->size() : 0U); if (obits != NULL) { const size_t N = obits->size(); diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index db6369d27..b4c00a429 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -155,7 +155,7 @@ status_t flatten_binder(const sp& /*proc*/, const sp& binder, Parcel* out) { flat_binder_object obj; - + obj.flags = 0x7f | FLAT_BINDER_FLAG_ACCEPTS_FDS; if (binder != NULL) { IBinder *local = binder->localBinder(); @@ -179,7 +179,7 @@ status_t flatten_binder(const sp& /*proc*/, obj.binder = 0; obj.cookie = 0; } - + return finish_flatten_binder(binder, obj, out); } @@ -187,7 +187,7 @@ status_t flatten_binder(const sp& /*proc*/, const wp& binder, Parcel* out) { flat_binder_object obj; - + obj.flags = 0x7f | FLAT_BINDER_FLAG_ACCEPTS_FDS; if (binder != NULL) { sp real = binder.promote(); @@ -210,7 +210,7 @@ status_t flatten_binder(const sp& /*proc*/, } return finish_flatten_binder(real, obj, out); } - + // XXX How to deal? In order to flatten the given binder, // we need to probe it for information, which requires a primary // reference... but we don't have one. @@ -223,7 +223,7 @@ status_t flatten_binder(const sp& /*proc*/, obj.binder = 0; obj.cookie = 0; return finish_flatten_binder(NULL, obj, out); - + } else { obj.type = BINDER_TYPE_BINDER; obj.binder = 0; @@ -238,12 +238,12 @@ inline static status_t finish_unflatten_binder( { return NO_ERROR; } - + status_t unflatten_binder(const sp& proc, const Parcel& in, sp* out) { const flat_binder_object* flat = in.readObject(false); - + if (flat) { switch (flat->type) { case BINDER_TYPE_BINDER: @@ -253,7 +253,7 @@ status_t unflatten_binder(const sp& proc, *out = proc->getStrongProxyForHandle(flat->handle); return finish_unflatten_binder( static_cast(out->get()), *flat, in); - } + } } return BAD_TYPE; } @@ -262,7 +262,7 @@ status_t unflatten_binder(const sp& proc, const Parcel& in, wp* out) { const flat_binder_object* flat = in.readObject(false); - + if (flat) { switch (flat->type) { case BINDER_TYPE_BINDER: @@ -336,7 +336,7 @@ status_t Parcel::setDataSize(size_t size) err = continueWrite(size); if (err == NO_ERROR) { mDataSize = size; - ALOGV("setDataSize Setting data size of %p to %d\n", this, mDataSize); + ALOGV("setDataSize Setting data size of %p to %zu", this, mDataSize); } return err; } @@ -424,7 +424,7 @@ status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) mObjects = objects; mObjectsCapacity = newSize; } - + // append and acquire objects int idx = mObjectsSize; for (int i = firstIndex; i <= lastIndex; i++) { @@ -510,7 +510,7 @@ bool Parcel::enforceInterface(const String16& interface, if (str == interface) { return true; } else { - ALOGW("**** enforceInterface() expected '%s' but read '%s'\n", + ALOGW("**** enforceInterface() expected '%s' but read '%s'", String8(interface).string(), String8(str).string()); return false; } @@ -540,10 +540,10 @@ status_t Parcel::finishWrite(size_t len) { //printf("Finish write of %d\n", len); mDataPos += len; - ALOGV("finishWrite Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("finishWrite Setting data pos of %p to %zu", this, mDataPos); if (mDataPos > mDataSize) { mDataSize = mDataPos; - ALOGV("finishWrite Setting data size of %p to %d\n", this, mDataSize); + ALOGV("finishWrite Setting data size of %p to %zu", this, mDataSize); } //printf("New pos=%d, size=%d\n", mDataPos, mDataSize); return NO_ERROR; @@ -709,7 +709,7 @@ status_t Parcel::writeString16(const String16& str) status_t Parcel::writeString16(const char16_t* str, size_t len) { if (str == NULL) return writeInt32(-1); - + status_t err = writeInt32(len); if (err == NO_ERROR) { len *= sizeof(char16_t); @@ -872,14 +872,14 @@ status_t Parcel::writeObject(const flat_binder_object& val, bool nullMetaData) if (enoughData && enoughObjects) { restart_write: *reinterpret_cast(mData+mDataPos) = val; - + // Need to write meta-data? if (nullMetaData || val.binder != 0) { mObjects[mObjectsSize] = mDataPos; acquire_object(ProcessState::self(), val, this); mObjectsSize++; } - + // remember if it's a file descriptor if (val.type == BINDER_TYPE_FD) { if (!mAllowFds) { @@ -902,7 +902,7 @@ restart_write: mObjects = objects; mObjectsCapacity = newSize; } - + goto restart_write; } @@ -922,7 +922,7 @@ status_t Parcel::read(void* outData, size_t len) const && len <= PAD_SIZE(len)) { memcpy(outData, mData+mDataPos, len); mDataPos += PAD_SIZE(len); - ALOGV("read Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("read Setting data pos of %p to %zu", this, mDataPos); return NO_ERROR; } return NOT_ENOUGH_DATA; @@ -934,7 +934,7 @@ const void* Parcel::readInplace(size_t len) const && len <= PAD_SIZE(len)) { const void* data = mData+mDataPos; mDataPos += PAD_SIZE(len); - ALOGV("readInplace Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("readInplace Setting data pos of %p to %zu", this, mDataPos); return data; } return NULL; @@ -1088,7 +1088,7 @@ const char* Parcel::readCString() const if (eos) { const size_t len = eos - str; mDataPos += PAD_SIZE(len+1); - ALOGV("readCString Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("readCString Setting data pos of %p to %zu", this, mDataPos); return str; } } @@ -1190,9 +1190,9 @@ int Parcel::readFileDescriptor() const if (flat) { switch (flat->type) { case BINDER_TYPE_FD: - //ALOGI("Returning file descriptor %ld from parcel %p\n", flat->handle, this); + //ALOGI("Returning file descriptor %ld from parcel %p", flat->handle, this); return flat->handle; - } + } } return BAD_TYPE; } @@ -1244,7 +1244,7 @@ status_t Parcel::read(FlattenableHelperInterface& val) const fds[i] = dup(this->readFileDescriptor()); if (fds[i] < 0) { err = BAD_VALUE; - ALOGE("dup() failed in Parcel::read, i is %d, fds[i] is %d, fd_count is %d, error: %s", + ALOGE("dup() failed in Parcel::read, i is %zu, fds[i] is %d, fd_count is %zu, error: %s", i, fds[i], fd_count, strerror(errno)); } } @@ -1270,19 +1270,19 @@ const flat_binder_object* Parcel::readObject(bool nullMetaData) const // When transferring a NULL object, we don't write it into // the object list, so we don't want to check for it when // reading. - ALOGV("readObject Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("readObject Setting data pos of %p to %zu", this, mDataPos); return obj; } - + // Ensure that this object is valid... binder_size_t* const OBJS = mObjects; const size_t N = mObjectsSize; size_t opos = mNextObjectHint; - + if (N > 0) { - ALOGV("Parcel %p looking for obj at %d, hint=%d\n", + ALOGV("Parcel %p looking for obj at %zu, hint=%zu", this, DPOS, opos); - + // Start at the current hint position, looking for an object at // the current data position. if (opos < N) { @@ -1294,23 +1294,23 @@ const flat_binder_object* Parcel::readObject(bool nullMetaData) const } if (OBJS[opos] == DPOS) { // Found it! - ALOGV("Parcel found obj %d at index %d with forward search", + ALOGV("Parcel %p found obj %zu at index %zu with forward search", this, DPOS, opos); mNextObjectHint = opos+1; - ALOGV("readObject Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("readObject Setting data pos of %p to %zu", this, mDataPos); return obj; } - + // Look backwards for it... while (opos > 0 && OBJS[opos] > DPOS) { opos--; } if (OBJS[opos] == DPOS) { // Found it! - ALOGV("Parcel found obj %d at index %d with backward search", + ALOGV("Parcel %p found obj %zu at index %zu with backward search", this, DPOS, opos); mNextObjectHint = opos+1; - ALOGV("readObject Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("readObject Setting data pos of %p to %zu", this, mDataPos); return obj; } } @@ -1324,14 +1324,14 @@ void Parcel::closeFileDescriptors() { size_t i = mObjectsSize; if (i > 0) { - //ALOGI("Closing file descriptors for %d objects...", mObjectsSize); + //ALOGI("Closing file descriptors for %zu objects...", i); } while (i > 0) { i--; const flat_binder_object* flat = reinterpret_cast(mData+mObjects[i]); if (flat->type == BINDER_TYPE_FD) { - //ALOGI("Closing fd: %ld\n", flat->handle); + //ALOGI("Closing fd: %ld", flat->handle); close(flat->handle); } } @@ -1365,9 +1365,9 @@ void Parcel::ipcSetDataReference(const uint8_t* data, size_t dataSize, mError = NO_ERROR; mData = const_cast(data); mDataSize = mDataCapacity = dataSize; - //ALOGI("setDataReference Setting data size of %p to %lu (pid=%d)\n", this, mDataSize, getpid()); + //ALOGI("setDataReference Setting data size of %p to %lu (pid=%d)", this, mDataSize, getpid()); mDataPos = 0; - ALOGV("setDataReference Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("setDataReference Setting data pos of %p to %zu", this, mDataPos); mObjects = const_cast(objects); mObjectsSize = mObjectsCapacity = objectsCount; mNextObjectHint = 0; @@ -1389,7 +1389,7 @@ void Parcel::ipcSetDataReference(const uint8_t* data, size_t dataSize, void Parcel::print(TextOutput& to, uint32_t /*flags*/) const { to << "Parcel("; - + if (errorCheck() != NO_ERROR) { const status_t err = errorCheck(); to << "Error: " << (void*)(intptr_t)err << " \"" << strerror(-err) << "\""; @@ -1408,7 +1408,7 @@ void Parcel::print(TextOutput& to, uint32_t /*flags*/) const } else { to << "NULL"; } - + to << ")"; } @@ -1449,7 +1449,7 @@ void Parcel::freeData() void Parcel::freeDataNoInit() { if (mOwner) { - //ALOGI("Freeing data ref of %p (pid=%d)\n", this, getpid()); + //ALOGI("Freeing data ref of %p (pid=%d)", this, getpid()); mOwner(this, mData, mDataSize, mObjects, mObjectsSize, mOwnerCookie); } else { releaseObjects(); @@ -1472,24 +1472,24 @@ status_t Parcel::restartWrite(size_t desired) freeData(); return continueWrite(desired); } - + uint8_t* data = (uint8_t*)realloc(mData, desired); if (!data && desired > mDataCapacity) { mError = NO_MEMORY; return NO_MEMORY; } - + releaseObjects(); - + if (data) { mData = data; mDataCapacity = desired; } - + mDataSize = mDataPos = 0; - ALOGV("restartWrite Setting data size of %p to %d\n", this, mDataSize); - ALOGV("restartWrite Setting data pos of %p to %d\n", this, mDataPos); - + ALOGV("restartWrite Setting data size of %p to %zu", this, mDataSize); + ALOGV("restartWrite Setting data pos of %p to %zu", this, mDataPos); + free(mObjects); mObjects = NULL; mObjectsSize = mObjectsCapacity = 0; @@ -1497,7 +1497,7 @@ status_t Parcel::restartWrite(size_t desired) mHasFds = false; mFdsKnown = true; mAllowFds = true; - + return NO_ERROR; } @@ -1517,7 +1517,7 @@ status_t Parcel::continueWrite(size_t desired) } } } - + if (mOwner) { // If the size is going to zero, just release the owner's data. if (desired == 0) { @@ -1533,7 +1533,7 @@ status_t Parcel::continueWrite(size_t desired) return NO_MEMORY; } binder_size_t* objects = NULL; - + if (objectsSize) { objects = (binder_size_t*)malloc(objectsSize*sizeof(binder_size_t)); if (!objects) { @@ -1550,21 +1550,21 @@ status_t Parcel::continueWrite(size_t desired) acquireObjects(); mObjectsSize = oldObjectsSize; } - + if (mData) { memcpy(data, mData, mDataSize < desired ? mDataSize : desired); } if (objects && mObjects) { memcpy(objects, mObjects, objectsSize*sizeof(binder_size_t)); } - //ALOGI("Freeing data ref of %p (pid=%d)\n", this, getpid()); + //ALOGI("Freeing data ref of %p (pid=%d)", this, getpid()); mOwner(this, mData, mDataSize, mObjects, mObjectsSize, mOwnerCookie); mOwner = NULL; mData = data; mObjects = objects; mDataSize = (mDataSize < desired) ? mDataSize : desired; - ALOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize); + ALOGV("continueWrite Setting data size of %p to %zu", this, mDataSize); mDataCapacity = desired; mObjectsSize = mObjectsCapacity = objectsSize; mNextObjectHint = 0; @@ -1604,14 +1604,14 @@ status_t Parcel::continueWrite(size_t desired) } else { if (mDataSize > desired) { mDataSize = desired; - ALOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize); + ALOGV("continueWrite Setting data size of %p to %zu", this, mDataSize); } if (mDataPos > desired) { mDataPos = desired; - ALOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("continueWrite Setting data pos of %p to %zu", this, mDataPos); } } - + } else { // This is the first data. Easy! uint8_t* data = (uint8_t*)malloc(desired); @@ -1624,11 +1624,11 @@ status_t Parcel::continueWrite(size_t desired) && mObjectsCapacity == 0)) { ALOGE("continueWrite: %zu/%p/%zu/%zu", mDataCapacity, mObjects, mObjectsCapacity, desired); } - + mData = data; mDataSize = mDataPos = 0; - ALOGV("continueWrite Setting data size of %p to %d\n", this, mDataSize); - ALOGV("continueWrite Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("continueWrite Setting data size of %p to %zu", this, mDataSize); + ALOGV("continueWrite Setting data pos of %p to %zu", this, mDataPos); mDataCapacity = desired; } @@ -1642,8 +1642,8 @@ void Parcel::initState() mDataSize = 0; mDataCapacity = 0; mDataPos = 0; - ALOGV("initState Setting data size of %p to %d\n", this, mDataSize); - ALOGV("initState Setting data pos of %p to %d\n", this, mDataPos); + ALOGV("initState Setting data size of %p to %zu", this, mDataSize); + ALOGV("initState Setting data pos of %p to %zu", this, mDataPos); mObjects = NULL; mObjectsSize = 0; mObjectsCapacity = 0;