diff options
| -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); |