Sync from google3.
Bug: 68239358
Test: Builds. Tested on device. CTS test passes.
bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Change-Id: Ie5e20b06b1c615ab246e7ed7f08e980e61c492c4
diff --git a/util/java/scoped_local_ref.h b/util/java/scoped_local_ref.h
index e716df5..8476767 100644
--- a/util/java/scoped_local_ref.h
+++ b/util/java/scoped_local_ref.h
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#ifndef KNOWLEDGE_CEREBRA_SENSE_TEXT_CLASSIFIER_LIB2_UTIL_JAVA_SCOPED_LOCAL_REF_H_
-#define KNOWLEDGE_CEREBRA_SENSE_TEXT_CLASSIFIER_LIB2_UTIL_JAVA_SCOPED_LOCAL_REF_H_
+#ifndef LIBTEXTCLASSIFIER_UTIL_JAVA_SCOPED_LOCAL_REF_H_
+#define LIBTEXTCLASSIFIER_UTIL_JAVA_SCOPED_LOCAL_REF_H_
#include <jni.h>
#include <memory>
@@ -28,6 +28,8 @@
// A deleter to be used with std::unique_ptr to delete JNI local references.
class LocalRefDeleter {
public:
+ LocalRefDeleter() : env_(nullptr) {}
+
// Style guide violating implicit constructor so that the LocalRefDeleter
// is implicitly constructed from the second argument to ScopedLocalRef.
LocalRefDeleter(JNIEnv* env) : env_(env) {} // NOLINT(runtime/explicit)
@@ -43,7 +45,11 @@
}
// The delete operator.
- void operator()(jobject o) const { env_->DeleteLocalRef(o); }
+ void operator()(jobject object) const {
+ if (env_) {
+ env_->DeleteLocalRef(object);
+ }
+ }
private:
// The env_ stashed to use for deletion. Thread-local, don't share!
@@ -62,4 +68,4 @@
} // namespace libtextclassifier2
-#endif // KNOWLEDGE_CEREBRA_SENSE_TEXT_CLASSIFIER_LIB2_UTIL_JAVA_SCOPED_LOCAL_REF_H_
+#endif // LIBTEXTCLASSIFIER_UTIL_JAVA_SCOPED_LOCAL_REF_H_