| 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;
|
| }
|
|
|