| Index: base/android/jni_weak_ref.cc
|
| diff --git a/base/android/jni_weak_ref.cc b/base/android/jni_weak_ref.cc
|
| index 55244f2f7331c8a591f02c6051923d7ebda3b33c..53a91a8a99918f97a70fcc317e8af0a4f3dbd4f5 100644
|
| --- a/base/android/jni_weak_ref.cc
|
| +++ b/base/android/jni_weak_ref.cc
|
| @@ -4,26 +4,38 @@
|
|
|
| #include "base/android/jni_weak_ref.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "base/android/jni_android.h"
|
| #include "base/logging.h"
|
|
|
| using base::android::AttachCurrentThread;
|
|
|
| -JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef()
|
| - : obj_(NULL) {
|
| -}
|
| +JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef() : obj_(nullptr) {}
|
|
|
| JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(
|
| const JavaObjectWeakGlobalRef& orig)
|
| - : obj_(NULL) {
|
| + : obj_(nullptr) {
|
| Assign(orig);
|
| }
|
|
|
| +JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(JavaObjectWeakGlobalRef&& orig)
|
| + : obj_(orig.obj_) {
|
| + orig.obj_ = nullptr;
|
| +}
|
| +
|
| JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(JNIEnv* env, jobject obj)
|
| : obj_(env->NewWeakGlobalRef(obj)) {
|
| DCHECK(obj_);
|
| }
|
|
|
| +JavaObjectWeakGlobalRef::JavaObjectWeakGlobalRef(
|
| + JNIEnv* env,
|
| + const base::android::JavaRef<jobject>& obj)
|
| + : obj_(env->NewWeakGlobalRef(obj.obj())) {
|
| + DCHECK(obj_);
|
| +}
|
| +
|
| JavaObjectWeakGlobalRef::~JavaObjectWeakGlobalRef() {
|
| reset();
|
| }
|
| @@ -32,10 +44,14 @@ void JavaObjectWeakGlobalRef::operator=(const JavaObjectWeakGlobalRef& rhs) {
|
| Assign(rhs);
|
| }
|
|
|
| +void JavaObjectWeakGlobalRef::operator=(JavaObjectWeakGlobalRef&& rhs) {
|
| + std::swap(obj_, rhs.obj_);
|
| +}
|
| +
|
| void JavaObjectWeakGlobalRef::reset() {
|
| if (obj_) {
|
| AttachCurrentThread()->DeleteWeakGlobalRef(obj_);
|
| - obj_ = NULL;
|
| + obj_ = nullptr;
|
| }
|
| }
|
|
|
| @@ -46,7 +62,7 @@ base::android::ScopedJavaLocalRef<jobject>
|
|
|
| base::android::ScopedJavaLocalRef<jobject> GetRealObject(
|
| JNIEnv* env, jweak obj) {
|
| - jobject real = NULL;
|
| + jobject real = nullptr;
|
| if (obj)
|
| real = env->NewLocalRef(obj);
|
| return base::android::ScopedJavaLocalRef<jobject>(env, real);
|
| @@ -60,5 +76,5 @@ void JavaObjectWeakGlobalRef::Assign(const JavaObjectWeakGlobalRef& other) {
|
| if (obj_)
|
| env->DeleteWeakGlobalRef(obj_);
|
|
|
| - obj_ = other.obj_ ? env->NewWeakGlobalRef(other.obj_) : NULL;
|
| + obj_ = other.obj_ ? env->NewWeakGlobalRef(other.obj_) : nullptr;
|
| }
|
|
|