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

Commit 4ce271d2 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 am: be1237a0

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

Change-Id: I593393e4d901c04a081aa146cef5c3e6ab0e9ae8
parents ad69c72a be1237a0
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);