diff options
| author | 2022-04-01 19:11:22 +0000 | |
|---|---|---|
| committer | 2022-04-01 19:11:22 +0000 | |
| commit | 70f8196ce20bb278deb06ec8f8a28236e1fdfc83 (patch) | |
| tree | a685be5aa0681d2cbbb21d07d60c20e510766677 | |
| parent | e32af6a22267df09330608abb7a32cb50a7ddd35 (diff) | |
| parent | 9c5c944e25e0e9632b4985f159be897885937359 (diff) | |
Merge "libbinder: add log for dropped extension" am: 9c5c944e25
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2052072
Change-Id: I7ab2fcae15324228a4475cf722c3d75f79090a71
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/binder/Binder.cpp | 4 | ||||
| -rw-r--r-- | libs/binder/tests/binderBinderUnitTest.cpp | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp index 01b25d390d..39befbe8e0 100644 --- a/libs/binder/Binder.cpp +++ b/libs/binder/Binder.cpp @@ -582,6 +582,10 @@ void BBinder::removeRpcServerLink(const sp<RpcServerLink>& link) { BBinder::~BBinder() { + if (!wasParceled() && getExtension()) { + ALOGW("Binder %p destroyed with extension attached before being parceled.", this); + } + Extras* e = mExtras.load(std::memory_order_relaxed); if (e) delete e; } diff --git a/libs/binder/tests/binderBinderUnitTest.cpp b/libs/binder/tests/binderBinderUnitTest.cpp index 1be0c59c78..ce2770f943 100644 --- a/libs/binder/tests/binderBinderUnitTest.cpp +++ b/libs/binder/tests/binderBinderUnitTest.cpp @@ -41,3 +41,10 @@ TEST(Binder, DetachObject) { EXPECT_EQ(kObject1, binder->detachObject(kObjectId1)); EXPECT_EQ(nullptr, binder->attachObject(kObjectId1, kObject2, nullptr, nullptr)); } + +TEST(Binder, AttachExtension) { + auto binder = sp<BBinder>::make(); + auto ext = sp<BBinder>::make(); + binder->setExtension(ext); + EXPECT_EQ(ext, binder->getExtension()); +} |