Index: base/android/jni_generator/testNativeExportsOption.golden |
diff --git a/base/android/jni_generator/testNativeExportsOption.golden b/base/android/jni_generator/testNativeExportsOption.golden |
index 231be7ce6e62725d237a225bdac9972bc253f0b6..9c258017b16f1384299a3c5fd6b065a1f318f272 100644 |
--- a/base/android/jni_generator/testNativeExportsOption.golden |
+++ b/base/android/jni_generator/testNativeExportsOption.golden |
@@ -20,8 +20,19 @@ |
namespace { |
const char kSampleForTestsClassPath[] = |
"org/chromium/example/jni_generator/SampleForTests"; |
+#if __clang__ |
+#pragma clang diagnostic push |
+#pragma clang diagnostic ignored "-Wunused-function" |
+#endif |
// Leaking this jclass as we cannot use LazyInstance from some threads. |
-jclass g_SampleForTests_clazz = NULL; |
+base::subtle::AtomicWord g_SampleForTests_clazz = 0; |
+jclass SampleForTests_clazz(JNIEnv* env) { |
+ return base::android::LazyGetClass(env, kSampleForTestsClassPath, |
+ &g_SampleForTests_clazz); |
+} |
+#if __clang__ |
+#pragma clang diagnostic pop |
+#endif |
} // namespace |
@@ -79,11 +90,11 @@ static void Java_SampleForTests_testMethodWithParam(JNIEnv* env, jobject obj, |
JniIntWrapper iParam) { |
/* Must call RegisterNativesImpl() */ |
CHECK_CLAZZ(env, obj, |
- g_SampleForTests_clazz); |
+ SampleForTests_clazz(env)); |
jmethodID method_id = |
base::android::MethodID::LazyGet< |
base::android::MethodID::TYPE_INSTANCE>( |
- env, g_SampleForTests_clazz, |
+ env, SampleForTests_clazz(env), |
"testMethodWithParam", |
"(" |
@@ -105,11 +116,11 @@ static base::android::ScopedJavaLocalRef<jstring> |
JniIntWrapper iParam) { |
/* Must call RegisterNativesImpl() */ |
CHECK_CLAZZ(env, obj, |
- g_SampleForTests_clazz, NULL); |
+ SampleForTests_clazz(env), NULL); |
jmethodID method_id = |
base::android::MethodID::LazyGet< |
base::android::MethodID::TYPE_INSTANCE>( |
- env, g_SampleForTests_clazz, |
+ env, SampleForTests_clazz(env), |
"testMethodWithParamAndReturn", |
"(" |
@@ -129,12 +140,12 @@ static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithParam = 0; |
static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env, |
JniIntWrapper iParam) { |
/* Must call RegisterNativesImpl() */ |
- CHECK_CLAZZ(env, g_SampleForTests_clazz, |
- g_SampleForTests_clazz, 0); |
+ CHECK_CLAZZ(env, SampleForTests_clazz(env), |
+ SampleForTests_clazz(env), 0); |
jmethodID method_id = |
base::android::MethodID::LazyGet< |
base::android::MethodID::TYPE_STATIC>( |
- env, g_SampleForTests_clazz, |
+ env, SampleForTests_clazz(env), |
"testStaticMethodWithParam", |
"(" |
@@ -144,7 +155,7 @@ static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env, |
&g_SampleForTests_testStaticMethodWithParam); |
jint ret = |
- env->CallStaticIntMethod(g_SampleForTests_clazz, |
+ env->CallStaticIntMethod(SampleForTests_clazz(env), |
method_id, as_jint(iParam)); |
jni_generator::CheckException(env); |
return ret; |
@@ -153,12 +164,12 @@ static jint Java_SampleForTests_testStaticMethodWithParam(JNIEnv* env, |
static base::subtle::AtomicWord g_SampleForTests_testMethodWithNoParam = 0; |
static jdouble Java_SampleForTests_testMethodWithNoParam(JNIEnv* env) { |
/* Must call RegisterNativesImpl() */ |
- CHECK_CLAZZ(env, g_SampleForTests_clazz, |
- g_SampleForTests_clazz, 0); |
+ CHECK_CLAZZ(env, SampleForTests_clazz(env), |
+ SampleForTests_clazz(env), 0); |
jmethodID method_id = |
base::android::MethodID::LazyGet< |
base::android::MethodID::TYPE_STATIC>( |
- env, g_SampleForTests_clazz, |
+ env, SampleForTests_clazz(env), |
"testMethodWithNoParam", |
"(" |
@@ -167,7 +178,7 @@ static jdouble Java_SampleForTests_testMethodWithNoParam(JNIEnv* env) { |
&g_SampleForTests_testMethodWithNoParam); |
jdouble ret = |
- env->CallStaticDoubleMethod(g_SampleForTests_clazz, |
+ env->CallStaticDoubleMethod(SampleForTests_clazz(env), |
method_id); |
jni_generator::CheckException(env); |
return ret; |
@@ -178,12 +189,12 @@ static base::subtle::AtomicWord g_SampleForTests_testStaticMethodWithNoParam = |
static base::android::ScopedJavaLocalRef<jstring> |
Java_SampleForTests_testStaticMethodWithNoParam(JNIEnv* env) { |
/* Must call RegisterNativesImpl() */ |
- CHECK_CLAZZ(env, g_SampleForTests_clazz, |
- g_SampleForTests_clazz, NULL); |
+ CHECK_CLAZZ(env, SampleForTests_clazz(env), |
+ SampleForTests_clazz(env), NULL); |
jmethodID method_id = |
base::android::MethodID::LazyGet< |
base::android::MethodID::TYPE_STATIC>( |
- env, g_SampleForTests_clazz, |
+ env, SampleForTests_clazz(env), |
"testStaticMethodWithNoParam", |
"(" |
@@ -192,7 +203,7 @@ static base::android::ScopedJavaLocalRef<jstring> |
&g_SampleForTests_testStaticMethodWithNoParam); |
jstring ret = |
- static_cast<jstring>(env->CallStaticObjectMethod(g_SampleForTests_clazz, |
+static_cast<jstring>(env->CallStaticObjectMethod(SampleForTests_clazz(env), |
method_id)); |
jni_generator::CheckException(env); |
return base::android::ScopedJavaLocalRef<jstring>(env, ret); |
@@ -202,7 +213,8 @@ static base::android::ScopedJavaLocalRef<jstring> |
// Step 3: RegisterNatives. |
static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { |
- g_SampleForTests_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz)); |
+ base::subtle::Release_Store(&g_SampleForTests_clazz, |
+ static_cast<base::subtle::AtomicWord>(env->NewWeakGlobalRef(clazz)); |
return true; |
} |