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

Commit be1237a0 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"...

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

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

Change-Id: I5a9acb5afb33c6cfb94b931ca80e1cce8ed3b939
parents d58e211d d60c6365
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);