Index: base/android/scoped_java_ref.h |
diff --git a/base/android/scoped_java_ref.h b/base/android/scoped_java_ref.h |
index a1b4b13f6da0116e00e64c0db3a86770fb1441a6..ba98d22d383dce4114c748e1666b53b1ac833e50 100644 |
--- a/base/android/scoped_java_ref.h |
+++ b/base/android/scoped_java_ref.h |
@@ -54,11 +54,11 @@ class BASE_EXPORT JavaRef<jobject> { |
jobject obj() const { return obj_; } |
- bool is_null() const { return obj_ == NULL; } |
+ bool is_null() const { return obj_ == nullptr; } |
protected: |
- // Initializes a NULL reference. Don't add anything else here; it's inlined. |
- JavaRef() : obj_(NULL) {} |
+ // Initializes a null reference. Don't add anything else here; it's inlined. |
+ JavaRef() : obj_(nullptr) {} |
// Takes ownership of the |obj| reference passed; requires it to be a local |
// reference type. |
@@ -144,7 +144,7 @@ class JavaParamRef : public JavaRef<T> { |
template<typename T> |
class ScopedJavaLocalRef : public JavaRef<T> { |
public: |
- ScopedJavaLocalRef() : env_(NULL) {} |
+ ScopedJavaLocalRef() : env_(nullptr) {} |
// Non-explicit copy constructor, to allow ScopedJavaLocalRef to be returned |
// by value as this is the normal usage pattern. |
@@ -153,9 +153,8 @@ class ScopedJavaLocalRef : public JavaRef<T> { |
this->SetNewLocalRef(env_, other.obj()); |
} |
- template<typename U> |
- explicit ScopedJavaLocalRef(const U& other) |
- : env_(NULL) { |
+ template <typename U> |
+ explicit ScopedJavaLocalRef(const U& other) : env_(nullptr) { |
this->Reset(other); |
} |
@@ -187,7 +186,7 @@ class ScopedJavaLocalRef : public JavaRef<T> { |
template<typename U> |
void Reset(const U& other) { |
- // If |env_| was not yet set (is still NULL) it will be attached to the |
+ // If |env_| was not yet set (is still null) it will be attached to the |
// current thread in SetNewLocalRef(). |
this->Reset(env_, other.obj()); |
} |
@@ -255,7 +254,7 @@ class ScopedJavaGlobalRef : public JavaRef<T> { |
template<typename U> |
void Reset(const U& other) { |
- this->Reset(NULL, other.obj()); |
+ this->Reset(nullptr, other.obj()); |
} |
template<typename U> |
@@ -278,6 +277,22 @@ class ScopedJavaGlobalRef : public JavaRef<T> { |
} |
}; |
+// Temporary type for parameters to Java functions, to allow incremental |
+// migration from bare jobject to JavaRef. Don't use outside JNI generator. |
+template <typename T> |
+class JavaRefOrBare { |
+ public: |
+ JavaRefOrBare(std::nullptr_t) : obj_(nullptr) {} |
+ JavaRefOrBare(const JavaRef<T>& ref) : obj_(ref.obj()) {} |
+ JavaRefOrBare(T obj) : obj_(obj) {} |
+ T obj() const { return obj_; } |
+ |
+ private: |
+ T obj_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(JavaRefOrBare); |
+}; |
+ |
} // namespace android |
} // namespace base |