summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2019-06-27 17:12:51 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2019-06-27 17:12:51 +0000
commit5ab710e47686c6cda7e65e67011353f6752311ca (patch)
treebe548c0e3ebc6d7afe59ccf4509b5b32ea2f72d0
parentf22c03dee8958edb43d29e857bc2432eaf8c8c3a (diff)
parent40d0133f6d3d79600968781ab766dbd520336f3d (diff)
downloadnative-5ab710e47686c6cda7e65e67011353f6752311ca.tar.gz
[automerger] Free mObjects if no objects left to realloc on resize am: edd3e3d8f4 am: c0394a6662 am: fbdb526a6a am: 40d0133f6d
Change-Id: I85737c8144061c40d52a73b11a2562ac196dac2e
-rw-r--r--libs/binder/Parcel.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index e9c26ea9ad..fe6f3dff42 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -2549,10 +2549,16 @@ status_t Parcel::continueWrite(size_t desired)
}
release_object(proc, *flat, this, &mOpenAshmemSize);
}
- binder_size_t* objects =
- (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t));
- if (objects) {
- mObjects = objects;
+
+ if (objectsSize == 0) {
+ free(mObjects);
+ mObjects = nullptr;
+ } else {
+ binder_size_t* objects =
+ (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t));
+ if (objects) {
+ mObjects = objects;
+ }
}
mObjectsSize = objectsSize;
mNextObjectHint = 0;