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:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user