Merge "Removes unnecessary weak reference on the java object associated with" am: 244406a4f5 am: 7c40bef8d7

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

Change-Id: Ib94d193de1d8a77e83cf9dce799be48d5115e15f
This commit is contained in:
Treehugger Robot
2020-08-19 21:21:41 +00:00
committed by Automerger Merge Worker
2 changed files with 9 additions and 23 deletions

View File

@@ -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;

View File

@@ -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);