diff options
| author | 2020-08-19 20:57:49 +0000 | |
|---|---|---|
| committer | 2020-08-19 20:57:49 +0000 | |
| commit | 244406a4f54c8b3b6f64afc65c0dcbe972ef7d16 (patch) | |
| tree | c42a681d0c2d467116cccc1b630112505d3e58e8 | |
| parent | f12f3415d071fb297f4366ef201e12d05e3f525c (diff) | |
| parent | 29f2c0dc8347dea98447e77e7d48b64401424fe4 (diff) | |
Merge "Removes unnecessary weak reference on the java object associated with"
| -rw-r--r-- | core/jni/android_os_HwRemoteBinder.cpp | 19 | ||||
| -rw-r--r-- | core/jni/android_os_HwRemoteBinder.h | 13 |
2 files changed, 9 insertions, 23 deletions
diff --git a/core/jni/android_os_HwRemoteBinder.cpp b/core/jni/android_os_HwRemoteBinder.cpp index f8f841c6fd26..3af55fe810fc 100644 --- a/core/jni/android_os_HwRemoteBinder.cpp +++ b/core/jni/android_os_HwRemoteBinder.cpp @@ -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; diff --git a/core/jni/android_os_HwRemoteBinder.h b/core/jni/android_os_HwRemoteBinder.h index 4b5a4c8c837c..7eb81f3c54e1 100644 --- a/core/jni/android_os_HwRemoteBinder.h +++ b/core/jni/android_os_HwRemoteBinder.h @@ -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); |