libbinder: ~BBinder checks for all values
If any configuration is set on a binder which is created and
destroyed temporarily (which happens often when people are
registering services), then put a log.
Fixes: 240617548
Test: boot, binderLibTest
Change-Id: I8ff8655c6abb308118e1c608947a0be680311d30
diff --git a/libs/binder/Binder.cpp b/libs/binder/Binder.cpp
index 532bacb..2541265 100644
--- a/libs/binder/Binder.cpp
+++ b/libs/binder/Binder.cpp
@@ -610,8 +610,22 @@
BBinder::~BBinder()
{
- if (!wasParceled() && getExtension()) {
- ALOGW("Binder %p destroyed with extension attached before being parceled.", this);
+ if (!wasParceled()) {
+ if (getExtension()) {
+ ALOGW("Binder %p destroyed with extension attached before being parceled.", this);
+ }
+ if (isRequestingSid()) {
+ ALOGW("Binder %p destroyed when requesting SID before being parceled.", this);
+ }
+ if (isInheritRt()) {
+ ALOGW("Binder %p destroyed after setInheritRt before being parceled.", this);
+ }
+ if (getMinSchedulerPolicy() != SCHED_NORMAL) {
+ ALOGW("Binder %p destroyed after setMinSchedulerPolicy before being parceled.", this);
+ }
+ if (getMinSchedulerPriority() != 0) {
+ ALOGW("Binder %p destroyed after setMinSchedulerPolicy before being parceled.", this);
+ }
}
Extras* e = mExtras.load(std::memory_order_relaxed);