| Index: base/android/jni_helper.cc
|
| diff --git a/base/android/jni_helper.cc b/base/android/jni_helper.cc
|
| index 3ff3bfb1dfb27cafd6499735f4c7b66e283510fa..c0833c9c1cd5b687e8e7bde8cbab7e172f7fde60 100644
|
| --- a/base/android/jni_helper.cc
|
| +++ b/base/android/jni_helper.cc
|
| @@ -9,6 +9,15 @@
|
|
|
| using base::android::AttachCurrentThread;
|
|
|
| +JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef()
|
| + : obj_(NULL) {
|
| +}
|
| +
|
| +JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(
|
| + const JavaObjectWeakGlobalRef& orig) {
|
| + Assign(orig);
|
| +}
|
| +
|
| JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(JNIEnv* env, jobject obj)
|
| : obj_(env->NewWeakGlobalRef(obj)) {
|
| DCHECK(obj_);
|
| @@ -18,6 +27,10 @@ JavaObjectWeakGlobalRef::~JavaObjectWeakGlobalRef() {
|
| reset();
|
| }
|
|
|
| +void JavaObjectWeakGlobalRef::operator=(const JavaObjectWeakGlobalRef& rhs) {
|
| + Assign(rhs);
|
| +}
|
| +
|
| void JavaObjectWeakGlobalRef::reset() {
|
| if (obj_) {
|
| AttachCurrentThread()->DeleteWeakGlobalRef(obj_);
|
| @@ -40,3 +53,8 @@ base::android::ScopedJavaLocalRef<jobject> GetRealObject(
|
| }
|
| return base::android::ScopedJavaLocalRef<jobject>(env, real);
|
| }
|
| +
|
| +void JavaObjectWeakGlobalRef::Assign(const JavaObjectWeakGlobalRef& other) {
|
| + JNIEnv* env = AttachCurrentThread();
|
| + obj_ = env->NewWeakGlobalRef(other.obj_);
|
| +}
|
|
|