Removes unnecessary weak reference on the java object associated with

JHwRemoteBinder.

Bug: 161964661
Test: system/tools/hidl/test/run_all_device_tests.sh
Change-Id: Ia08e64bd4df87f1604f26ffa64d799131cc31f53
This commit is contained in:
Andreas Huber
2020-08-18 13:38:52 -07:00
parent c235669ec2
commit 29f2c0dc83
2 changed files with 9 additions and 23 deletions

View File

@@ -269,22 +269,9 @@ jobject JHwRemoteBinder::NewObject(
return obj;
}
JHwRemoteBinder::JHwRemoteBinder(
JNIEnv *env, jobject thiz, const sp<hardware::IBinder> &binder)
: mBinder(binder) {
mDeathRecipientList = new HwBinderDeathRecipientList();
jclass clazz = env->GetObjectClass(thiz);
CHECK(clazz != NULL);
mObject = env->NewWeakGlobalRef(thiz);
}
JHwRemoteBinder::~JHwRemoteBinder() {
JNIEnv *env = AndroidRuntime::getJNIEnv();
env->DeleteWeakGlobalRef(mObject);
mObject = NULL;
}
JHwRemoteBinder::JHwRemoteBinder(JNIEnv* env, jobject /* thiz */,
const sp<hardware::IBinder>& binder)
: mBinder(binder), mDeathRecipientList(new HwBinderDeathRecipientList()) {}
sp<hardware::IBinder> JHwRemoteBinder::getBinder() const {
return mBinder;

View File

@@ -36,9 +36,13 @@ class HwBinderDeathRecipientList : public RefBase {
std::vector<sp<HwBinderDeathRecipient>> mList;
Mutex mLock;
protected:
~HwBinderDeathRecipientList() override;
public:
HwBinderDeathRecipientList();
~HwBinderDeathRecipientList();
explicit HwBinderDeathRecipientList();
DISALLOW_COPY_AND_ASSIGN(HwBinderDeathRecipientList);
void add(const sp<HwBinderDeathRecipient>& recipient);
void remove(const sp<HwBinderDeathRecipient>& recipient);
@@ -66,12 +70,7 @@ struct JHwRemoteBinder : public RefBase {
void setBinder(const sp<hardware::IBinder> &binder);
sp<HwBinderDeathRecipientList> getDeathRecipientList() const;
protected:
virtual ~JHwRemoteBinder();
private:
jobject mObject;
sp<hardware::IBinder> mBinder;
sp<HwBinderDeathRecipientList> mDeathRecipientList;
DISALLOW_COPY_AND_ASSIGN(JHwRemoteBinder);