Loading libs/binder/Binder.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading libs/binder/tests/binderBinderUnitTest.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -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()); } Loading
libs/binder/Binder.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading
libs/binder/tests/binderBinderUnitTest.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -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()); }