Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 29f2c0dc authored by Andreas Huber's avatar Andreas Huber
Browse files

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
parent c235669e
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -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;
+6 −7
Original line number Diff line number Diff line
@@ -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);