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

Commit 7c40bef8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Removes unnecessary weak reference on the java object associated with" am: 244406a4

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1404077

Change-Id: I65b348d0cdec8bef4835e01bd4cc39bd0e848bb9
parents 503b23ed 244406a4
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);