diff options
29 files changed, 707 insertions, 371 deletions
diff --git a/android_webview/lib/main/webview_entry_point.cc b/android_webview/lib/main/webview_entry_point.cc index 1aa1d27..73bf8f7 100644 --- a/android_webview/lib/main/webview_entry_point.cc +++ b/android_webview/lib/main/webview_entry_point.cc @@ -6,6 +6,7 @@ #include "android_webview/native/android_webview_jni_registrar.h" #include "base/android/jni_android.h" #include "base/android/jni_registrar.h" +#include "base/android/jni_utils.h" #include "base/android/library_loader/library_loader_hooks.h" #include "components/navigation_interception/component_jni_registrar.h" #include "components/web_contents_delegate_android/component_jni_registrar.h" @@ -47,6 +48,9 @@ JNI_EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { if (!android_webview::RegisterJni(env)) return -1; + base::android::InitReplacementClassLoader(env, + base::android::GetClassLoader(env)); + content::SetContentMainDelegate(new android_webview::AwMainDelegate()); // Initialize url lib here while we are still single-threaded, in case we use diff --git a/base/BUILD.gn b/base/BUILD.gn index 0f83b32..e8a27b9 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn @@ -49,6 +49,8 @@ component("base") { "android/jni_registrar.h", "android/jni_string.cc", "android/jni_string.h", + "android/jni_utils.cc", + "android/jni_utils.h", "android/jni_weak_ref.cc", "android/jni_weak_ref.h", "android/library_loader/library_loader_hooks.cc", @@ -1343,6 +1345,7 @@ if (is_android) { "android/java/src/org/chromium/base/EventLog.java", "android/java/src/org/chromium/base/FieldTrialList.java", "android/java/src/org/chromium/base/ImportantFileWriterAndroid.java", + "android/java/src/org/chromium/base/JNIUtils.java", "android/java/src/org/chromium/base/library_loader/LibraryLoader.java", "android/java/src/org/chromium/base/MemoryPressureListener.java", "android/java/src/org/chromium/base/JavaHandlerThread.java", diff --git a/base/android/base_jni_registrar.cc b/base/android/base_jni_registrar.cc index a7a5fd2..b6d8a28 100644 --- a/base/android/base_jni_registrar.cc +++ b/base/android/base_jni_registrar.cc @@ -15,6 +15,7 @@ #include "base/android/java_handler_thread.h" #include "base/android/jni_android.h" #include "base/android/jni_registrar.h" +#include "base/android/jni_utils.h" #include "base/android/memory_pressure_listener_android.h" #include "base/android/path_service_android.h" #include "base/android/path_utils.h" @@ -40,6 +41,7 @@ static RegistrationMethod kBaseRegisteredMethods[] = { { "FieldTrialList", base::android::RegisterFieldTrialList }, { "ImportantFileWriterAndroid", base::android::RegisterImportantFileWriterAndroid }, + { "JNIUtils", base::android::RegisterJNIUtils }, { "MemoryPressureListenerAndroid", base::android::MemoryPressureListenerAndroid::Register }, { "JavaHandlerThread", base::android::JavaHandlerThread::RegisterBindings }, diff --git a/base/android/java/src/org/chromium/base/JNIUtils.java b/base/android/java/src/org/chromium/base/JNIUtils.java new file mode 100644 index 0000000..6f6cd54 --- /dev/null +++ b/base/android/java/src/org/chromium/base/JNIUtils.java @@ -0,0 +1,20 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.base; + +/** + * This class provides JNI-related methods to the native library. + */ +public class JNIUtils { + /** + * This returns a ClassLoader that is capable of loading Chromium Java code. Such a ClassLoader + * is needed for the few cases where the JNI mechanism is unable to automatically determine the + * appropriate ClassLoader instance. + */ + @CalledByNative + public static Object getClassLoader() { + return JNIUtils.class.getClassLoader(); + } +} diff --git a/base/android/jni_android.cc b/base/android/jni_android.cc index 6f080fb..e09c2d5 100644 --- a/base/android/jni_android.cc +++ b/base/android/jni_android.cc @@ -8,6 +8,7 @@ #include "base/android/build_info.h" #include "base/android/jni_string.h" +#include "base/android/jni_utils.h" #include "base/lazy_instance.h" #include "base/logging.h" @@ -21,6 +22,9 @@ JavaVM* g_jvm = NULL; // that may still be running at shutdown. There is no harm in doing this. base::LazyInstance<base::android::ScopedJavaGlobalRef<jobject> >::Leaky g_application_context = LAZY_INSTANCE_INITIALIZER; +base::LazyInstance<base::android::ScopedJavaGlobalRef<jobject> >::Leaky + g_class_loader = LAZY_INSTANCE_INITIALIZER; +jmethodID g_class_loader_load_class_method_id = 0; std::string GetJavaExceptionInfo(JNIEnv* env, jthrowable java_throwable) { ScopedJavaLocalRef<jclass> throwable_clazz = @@ -118,17 +122,68 @@ void InitApplicationContext(JNIEnv* env, const JavaRef<jobject>& context) { g_application_context.Get().Reset(context); } +void InitReplacementClassLoader(JNIEnv* env, + const JavaRef<jobject>& class_loader) { + DCHECK(g_class_loader.Get().is_null()); + DCHECK(!class_loader.is_null()); + + ScopedJavaLocalRef<jclass> class_loader_clazz = + GetClass(env, "java/lang/ClassLoader"); + CHECK(!ClearException(env)); + g_class_loader_load_class_method_id = + env->GetMethodID(class_loader_clazz.obj(), + "loadClass", + "(Ljava/lang/String;)Ljava/lang/Class;"); + CHECK(!ClearException(env)); + + DCHECK(env->IsInstanceOf(class_loader.obj(), class_loader_clazz.obj())); + g_class_loader.Get().Reset(class_loader); +} + const jobject GetApplicationContext() { DCHECK(!g_application_context.Get().is_null()); return g_application_context.Get().obj(); } ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env, const char* class_name) { - jclass clazz = env->FindClass(class_name); + jclass clazz; + if (!g_class_loader.Get().is_null()) { + clazz = static_cast<jclass>( + env->CallObjectMethod(g_class_loader.Get().obj(), + g_class_loader_load_class_method_id, + ConvertUTF8ToJavaString(env, class_name).obj())); + } else { + clazz = env->FindClass(class_name); + } CHECK(!ClearException(env) && clazz) << "Failed to find class " << class_name; return ScopedJavaLocalRef<jclass>(env, clazz); } +jclass LazyGetClass( + JNIEnv* env, + const char* class_name, + base::subtle::AtomicWord* atomic_class_id) { + COMPILE_ASSERT(sizeof(subtle::AtomicWord) >= sizeof(jclass), + AtomicWord_SmallerThan_jMethodID); + subtle::AtomicWord value = base::subtle::Acquire_Load(atomic_class_id); + if (value) + return reinterpret_cast<jclass>(value); + ScopedJavaGlobalRef<jclass> clazz; + clazz.Reset(GetClass(env, class_name)); + subtle::AtomicWord null_aw = reinterpret_cast<subtle::AtomicWord>(NULL); + subtle::AtomicWord cas_result = base::subtle::Release_CompareAndSwap( + atomic_class_id, + null_aw, + reinterpret_cast<subtle::AtomicWord>(clazz.obj())); + if (cas_result == null_aw) { + // We intentionally leak the global ref since we now storing it as a raw + // pointer in |atomic_class_id|. + return clazz.Release(); + } else { + return reinterpret_cast<jclass>(cas_result); + } +} + template<MethodID::Type type> jmethodID MethodID::Get(JNIEnv* env, jclass clazz, diff --git a/base/android/jni_android.h b/base/android/jni_android.h index faf53b7..b5e5526 100644 --- a/base/android/jni_android.h +++ b/base/android/jni_android.h @@ -53,6 +53,15 @@ BASE_EXPORT bool IsVMInitialized(); BASE_EXPORT void InitApplicationContext(JNIEnv* env, const JavaRef<jobject>& context); +// Initializes the global ClassLoader used by the GetClass and LazyGetClass +// methods. This is needed because JNI will use the base ClassLoader when there +// is no Java code on the stack. The base ClassLoader doesn't know about any of +// the application classes and will fail to lookup anything other than system +// classes. +BASE_EXPORT void InitReplacementClassLoader( + JNIEnv* env, + const JavaRef<jobject>& class_loader); + // Gets a global ref to the application context set with // InitApplicationContext(). Ownership is retained by the function - the caller // must NOT release it. @@ -66,6 +75,17 @@ const BASE_EXPORT jobject GetApplicationContext(); BASE_EXPORT ScopedJavaLocalRef<jclass> GetClass(JNIEnv* env, const char* class_name); +// The method will initialize |atomic_class_id| to contain a global ref to the +// class. And will return that ref on subsequent calls. It's the caller's +// responsibility to release the ref when it is no longer needed. +// The caller is responsible to zero-initialize |atomic_method_id|. +// It's fine to simultaneously call this on multiple threads referencing the +// same |atomic_method_id|. +BASE_EXPORT jclass LazyGetClass( + JNIEnv* env, + const char* class_name, + base::subtle::AtomicWord* atomic_class_id); + // This class is a wrapper for JNIEnv Get(Static)MethodID. class BASE_EXPORT MethodID { public: diff --git a/base/android/jni_generator/golden_sample_for_tests_jni.h b/base/android/jni_generator/golden_sample_for_tests_jni.h index 7dbf71e..9398752 100644 --- a/base/android/jni_generator/golden_sample_for_tests_jni.h +++ b/base/android/jni_generator/golden_sample_for_tests_jni.h @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -24,12 +24,22 @@ const char kSampleForTestsClassPath[] = "org/chromium/example/jni_generator/SampleForTests"; const char kInnerStructBClassPath[] = "org/chromium/example/jni_generator/SampleForTests$InnerStructB"; +#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_InnerStructA_clazz = NULL; +jclass InnerStructA_clazz(JNIEnv*) { return g_InnerStructA_clazz; } // Leaking this jclass as we cannot use LazyInstance from some threads. jclass g_SampleForTests_clazz = NULL; +jclass SampleForTests_clazz(JNIEnv*) { return g_SampleForTests_clazz; } // Leaking this jclass as we cannot use LazyInstance from some threads. jclass g_InnerStructB_clazz = NULL; +jclass InnerStructB_clazz(JNIEnv*) { return g_InnerStructB_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -99,11 +109,11 @@ static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, JniIntWrapper bar) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_SampleForTests_clazz, 0); + SampleForTests_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_SampleForTests_clazz, + env, SampleForTests_clazz(env), "javaMethod", "(" @@ -123,12 +133,12 @@ static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, static base::subtle::AtomicWord g_SampleForTests_staticJavaMethod = 0; static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_SampleForTests_clazz, - g_SampleForTests_clazz, false); + CHECK_CLAZZ(env, SampleForTests_clazz(env), + SampleForTests_clazz(env), false); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_SampleForTests_clazz, + env, SampleForTests_clazz(env), "staticJavaMethod", "(" @@ -137,7 +147,7 @@ static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) { &g_SampleForTests_staticJavaMethod); jboolean ret = - env->CallStaticBooleanMethod(g_SampleForTests_clazz, + env->CallStaticBooleanMethod(SampleForTests_clazz(env), method_id); jni_generator::CheckException(env); return ret; @@ -148,11 +158,11 @@ static void Java_SampleForTests_packagePrivateJavaMethod(JNIEnv* env, jobject obj) { /* 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), "packagePrivateJavaMethod", "(" @@ -171,11 +181,11 @@ static void Java_SampleForTests_methodThatThrowsException(JNIEnv* env, jobject obj) { /* 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), "methodThatThrowsException", "(" @@ -194,12 +204,12 @@ static base::android::ScopedJavaLocalRef<jobject> JniIntWrapper i, jstring s) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_InnerStructA_clazz, - g_InnerStructA_clazz, NULL); + CHECK_CLAZZ(env, InnerStructA_clazz(env), + InnerStructA_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_InnerStructA_clazz, + env, InnerStructA_clazz(env), "create", "(" @@ -211,7 +221,7 @@ static base::android::ScopedJavaLocalRef<jobject> &g_InnerStructA_create); jobject ret = - env->CallStaticObjectMethod(g_InnerStructA_clazz, + env->CallStaticObjectMethod(InnerStructA_clazz(env), method_id, l, as_jint(i), s); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); @@ -222,11 +232,11 @@ static void Java_SampleForTests_addStructA(JNIEnv* env, jobject obj, jobject a) { /* 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), "addStructA", "(" @@ -246,11 +256,11 @@ static void Java_SampleForTests_iterateAndDoSomething(JNIEnv* env, jobject obj) { /* 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), "iterateAndDoSomething", "(" @@ -268,11 +278,11 @@ static base::subtle::AtomicWord g_InnerStructB_getKey = 0; static jlong Java_InnerStructB_getKey(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InnerStructB_clazz, 0); + InnerStructB_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InnerStructB_clazz, + env, InnerStructB_clazz(env), "getKey", "(" @@ -292,11 +302,11 @@ static base::android::ScopedJavaLocalRef<jstring> Java_InnerStructB_getValue(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InnerStructB_clazz, NULL); + InnerStructB_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InnerStructB_clazz, + env, InnerStructB_clazz(env), "getValue", "(" @@ -379,11 +389,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests); - if (env->RegisterNatives(g_SampleForTests_clazz, + if (env->RegisterNatives(SampleForTests_clazz(env), kMethodsSampleForTests, kMethodsSampleForTestsSize) < 0) { jni_generator::HandleRegistrationError( - env, g_SampleForTests_clazz, __FILE__); + env, SampleForTests_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/jni_generator.py b/base/android/jni_generator/jni_generator.py index 88332fa..a1d8790 100755 --- a/base/android/jni_generator/jni_generator.py +++ b/base/android/jni_generator/jni_generator.py @@ -731,7 +731,7 @@ class InlHeaderFileGenerator(object): def GetContent(self): """Returns the content of the JNI binding file.""" template = Template("""\ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -947,11 +947,11 @@ ${CALLED_BY_NATIVES} template = Template("""\ const int kMethods${JAVA_CLASS}Size = arraysize(kMethods${JAVA_CLASS}); - if (env->RegisterNatives(g_${JAVA_CLASS}_clazz, + if (env->RegisterNatives(${JAVA_CLASS}_clazz(env), kMethods${JAVA_CLASS}, kMethods${JAVA_CLASS}Size) < 0) { jni_generator::HandleRegistrationError( - env, g_${JAVA_CLASS}_clazz, __FILE__); + env, ${JAVA_CLASS}_clazz(env), __FILE__); return false; } """) @@ -1122,11 +1122,10 @@ static ${RETURN} ${NAME}(JNIEnv* env, ${PARAMS_IN_DECLARATION}) {""" def GetCalledByNativeValues(self, called_by_native): """Fills in necessary values for the CalledByNative methods.""" + java_class = called_by_native.java_class_name or self.class_name if called_by_native.static or called_by_native.is_constructor: first_param_in_declaration = '' - first_param_in_call = ('g_%s_clazz' % - (called_by_native.java_class_name or - self.class_name)) + first_param_in_call = ('%s_clazz(env)' % java_class) else: first_param_in_declaration = ', jobject obj' first_param_in_call = 'obj' @@ -1160,7 +1159,7 @@ static ${RETURN} ${NAME}(JNIEnv* env, ${PARAMS_IN_DECLARATION}) {""" else: return_clause = 'return ret;' return { - 'JAVA_CLASS': called_by_native.java_class_name or self.class_name, + 'JAVA_CLASS': java_class, 'RETURN_TYPE': return_type, 'OPTIONAL_ERROR_RETURN': optional_error_return, 'RETURN_DECLARATION': return_declaration, @@ -1204,7 +1203,7 @@ static base::subtle::AtomicWord g_${JAVA_CLASS}_${METHOD_ID_VAR_NAME} = 0; ${FUNCTION_HEADER} /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, ${FIRST_PARAM_IN_CALL}, - g_${JAVA_CLASS}_clazz${OPTIONAL_ERROR_RETURN}); + ${JAVA_CLASS}_clazz(env)${OPTIONAL_ERROR_RETURN}); jmethodID method_id = ${GET_METHOD_ID_IMPL} ${RETURN_DECLARATION} @@ -1263,22 +1262,56 @@ const char k${JAVA_CLASS}ClassPath[] = "${JNI_CLASS_PATH}";""") } ret += [template.substitute(values)] ret += '' - for clazz in called_by_native_classes: + + class_getter_methods = [] + if self.options.native_exports: template = Template("""\ // Leaking this jclass as we cannot use LazyInstance from some threads. -jclass g_${JAVA_CLASS}_clazz = NULL;""") +base::subtle::AtomicWord g_${JAVA_CLASS}_clazz = 0; +jclass ${JAVA_CLASS}_clazz(JNIEnv* env) { + return base::android::LazyGetClass(env, k${JAVA_CLASS}ClassPath, \ + &g_${JAVA_CLASS}_clazz); +}""") + else: + template = Template("""\ +// Leaking this jclass as we cannot use LazyInstance from some threads. +jclass g_${JAVA_CLASS}_clazz = NULL; +jclass ${JAVA_CLASS}_clazz(JNIEnv*) { return g_${JAVA_CLASS}_clazz; }""") + + for clazz in called_by_native_classes: values = { 'JAVA_CLASS': clazz, } - ret += [template.substitute(values)] + class_getter_methods += [template.substitute(values)] + + template = Template("""\ +#if __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-function" +#endif +${CLASS_GETER_METHODS} +#if __clang__ +#pragma clang diagnostic pop +#endif""") + values = { + 'CLASS_GETER_METHODS': '\n'.join(class_getter_methods) + } + ret += [template.substitute(values)] return '\n'.join(ret) def GetFindClasses(self): """Returns the imlementation of FindClass for all known classes.""" if self.init_native: - template = Template("""\ + if self.options.native_exports: + template = Template("""\ + base::subtle::Release_Store(&g_${JAVA_CLASS}_clazz, + static_cast<base::subtle::AtomicWord>(env->NewWeakGlobalRef(clazz));""") + else: + template = Template("""\ g_${JAVA_CLASS}_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz));""") else: + if self.options.native_exports: + return '\n' template = Template("""\ g_${JAVA_CLASS}_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( base::android::GetClass(env, k${JAVA_CLASS}ClassPath).obj()));""") @@ -1293,13 +1326,13 @@ jclass g_${JAVA_CLASS}_clazz = NULL;""") if self.options.eager_called_by_natives: template = Template("""\ env->Get${STATIC_METHOD_PART}MethodID( - g_${JAVA_CLASS}_clazz, + ${JAVA_CLASS}_clazz(env), "${JNI_NAME}", ${JNI_SIGNATURE});""") else: template = Template("""\ base::android::MethodID::LazyGet< base::android::MethodID::TYPE_${STATIC}>( - env, g_${JAVA_CLASS}_clazz, + env, ${JAVA_CLASS}_clazz(env), "${JNI_NAME}", ${JNI_SIGNATURE}, &g_${JAVA_CLASS}_${METHOD_ID_VAR_NAME}); diff --git a/base/android/jni_generator/testCalledByNatives.golden b/base/android/jni_generator/testCalledByNatives.golden index abdc507..57a48ca 100644 --- a/base/android/jni_generator/testCalledByNatives.golden +++ b/base/android/jni_generator/testCalledByNatives.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -20,10 +20,19 @@ namespace { const char kTestJniClassPath[] = "org/chromium/TestJni"; const char kInfoBarClassPath[] = "org/chromium/TestJni$InfoBar"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } // Leaking this jclass as we cannot use LazyInstance from some threads. jclass g_InfoBar_clazz = NULL; +jclass InfoBar_clazz(JNIEnv*) { return g_InfoBar_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -39,11 +48,11 @@ static base::android::ScopedJavaLocalRef<jobject> jobject icon) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "showConfirmInfoBar", "(" @@ -73,11 +82,11 @@ static base::android::ScopedJavaLocalRef<jobject> jstring args) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "showAutoLoginInfoBar", "(" @@ -100,11 +109,11 @@ static base::subtle::AtomicWord g_InfoBar_dismiss = 0; static void Java_InfoBar_dismiss(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InfoBar_clazz); + InfoBar_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InfoBar_clazz, + env, InfoBar_clazz(env), "dismiss", "(" @@ -124,12 +133,12 @@ static jboolean Java_TestJni_shouldShowAutoLogin(JNIEnv* env, jobject view, jstring account, jstring args) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_TestJni_clazz, - g_TestJni_clazz, false); + CHECK_CLAZZ(env, TestJni_clazz(env), + TestJni_clazz(env), false); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "shouldShowAutoLogin", "(" @@ -142,7 +151,7 @@ static jboolean Java_TestJni_shouldShowAutoLogin(JNIEnv* env, jobject view, &g_TestJni_shouldShowAutoLogin); jboolean ret = - env->CallStaticBooleanMethod(g_TestJni_clazz, + env->CallStaticBooleanMethod(TestJni_clazz(env), method_id, view, realm, account, args); jni_generator::CheckException(env); return ret; @@ -152,12 +161,12 @@ static base::subtle::AtomicWord g_TestJni_openUrl = 0; static base::android::ScopedJavaLocalRef<jobject> Java_TestJni_openUrl(JNIEnv* env, jstring url) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_TestJni_clazz, - g_TestJni_clazz, NULL); + CHECK_CLAZZ(env, TestJni_clazz(env), + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "openUrl", "(" @@ -167,7 +176,7 @@ static base::android::ScopedJavaLocalRef<jobject> Java_TestJni_openUrl(JNIEnv* &g_TestJni_openUrl); jobject ret = - env->CallStaticObjectMethod(g_TestJni_clazz, + env->CallStaticObjectMethod(TestJni_clazz(env), method_id, url); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); @@ -182,11 +191,11 @@ static void Java_TestJni_activateHardwareAcceleration(JNIEnv* env, jobject obj, JniIntWrapper iSecondaryID) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz); + TestJni_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "activateHardwareAcceleration", "(" @@ -211,11 +220,11 @@ static void Java_TestJni_uncheckedCall(JNIEnv* env, jobject obj, JniIntWrapper iParam) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz); + TestJni_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "uncheckedCall", "(" @@ -234,11 +243,11 @@ static base::android::ScopedJavaLocalRef<jbyteArray> Java_TestJni_returnByteArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnByteArray", "(" @@ -258,11 +267,11 @@ static base::android::ScopedJavaLocalRef<jbooleanArray> Java_TestJni_returnBooleanArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnBooleanArray", "(" @@ -282,11 +291,11 @@ static base::android::ScopedJavaLocalRef<jcharArray> Java_TestJni_returnCharArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnCharArray", "(" @@ -306,11 +315,11 @@ static base::android::ScopedJavaLocalRef<jshortArray> Java_TestJni_returnShortArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnShortArray", "(" @@ -330,11 +339,11 @@ static base::android::ScopedJavaLocalRef<jintArray> Java_TestJni_returnIntArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnIntArray", "(" @@ -354,11 +363,11 @@ static base::android::ScopedJavaLocalRef<jlongArray> Java_TestJni_returnLongArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnLongArray", "(" @@ -378,11 +387,11 @@ static base::android::ScopedJavaLocalRef<jdoubleArray> Java_TestJni_returnDoubleArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnDoubleArray", "(" @@ -402,11 +411,11 @@ static base::android::ScopedJavaLocalRef<jobjectArray> Java_TestJni_returnObjectArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnObjectArray", "(" @@ -426,11 +435,11 @@ static base::android::ScopedJavaLocalRef<jobjectArray> Java_TestJni_returnArrayOfByteArray(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "returnArrayOfByteArray", "(" @@ -450,11 +459,11 @@ static base::android::ScopedJavaLocalRef<jobject> Java_TestJni_getCompressFormat(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "getCompressFormat", "(" @@ -474,11 +483,11 @@ static base::android::ScopedJavaLocalRef<jobject> Java_TestJni_getCompressFormatList(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_TestJni_clazz, NULL); + TestJni_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_TestJni_clazz, + env, TestJni_clazz(env), "getCompressFormatList", "(" diff --git a/base/android/jni_generator/testConstantsFromJavaP.golden b/base/android/jni_generator/testConstantsFromJavaP.golden index 795bd54..89955d6 100644 --- a/base/android/jni_generator/testConstantsFromJavaP.golden +++ b/base/android/jni_generator/testConstantsFromJavaP.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kMotionEventClassPath[] = "android/view/MotionEvent"; +#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_MotionEvent_clazz = NULL; +jclass MotionEvent_clazz(JNIEnv*) { return g_MotionEvent_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -117,11 +125,11 @@ static void Java_MotionEvent_finalize(JNIEnv* env, jobject obj) __attribute__ static void Java_MotionEvent_finalize(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "finalize", "()V", &g_MotionEvent_finalize); @@ -167,18 +175,18 @@ static base::android::ScopedJavaLocalRef<jobject> JniIntWrapper p12, JniIntWrapper p13) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_J_J_I_I_LAVMEPP_LAVMEPC_I_I_F_F_I_I_I_I); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, as_jint(p6), as_jint(p7), p8, p9, as_jint(p10), as_jint(p11), as_jint(p12), as_jint(p13)); @@ -219,18 +227,18 @@ static base::android::ScopedJavaLocalRef<jobject> JniIntWrapper p11, JniIntWrapper p12) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_J_J_I_I_AI_LAVMEPC_I_F_F_I_I_I_I); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, as_jint(p6), p7, p8, as_jint(p9), as_jint(p10), as_jint(p11), as_jint(p12)); jni_generator::CheckException(env); @@ -266,18 +274,18 @@ static base::android::ScopedJavaLocalRef<jobject> JniIntWrapper p10, JniIntWrapper p11) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(JJIFFFFIFFII)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_J_J_I_F_F_F_F_I_F_F_I_I); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0, p1, as_jint(p2), p3, p4, p5, p6, as_jint(p7), p8, p9, as_jint(p10), as_jint(p11)); jni_generator::CheckException(env); @@ -315,18 +323,18 @@ static base::android::ScopedJavaLocalRef<jobject> JniIntWrapper p11, JniIntWrapper p12) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(JJIIFFFFIFFII)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_J_J_I_I_F_F_F_F_I_F_F_I_I); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0, p1, as_jint(p2), as_jint(p3), p4, p5, p6, p7, as_jint(p8), p9, p10, as_jint(p11), as_jint(p12)); jni_generator::CheckException(env); @@ -349,18 +357,18 @@ static base::android::ScopedJavaLocalRef<jobject> jfloat p4, JniIntWrapper p5) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(JJIFFI)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_J_J_I_F_F_I); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0, p1, as_jint(p2), p3, p4, as_jint(p5)); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); @@ -373,18 +381,18 @@ static base::android::ScopedJavaLocalRef<jobject> static base::android::ScopedJavaLocalRef<jobject> Java_MotionEvent_obtainAVME_AVME(JNIEnv* env, jobject p0) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtain", "(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;", &g_MotionEvent_obtainAVME_AVME); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); @@ -397,18 +405,18 @@ static base::android::ScopedJavaLocalRef<jobject> static base::android::ScopedJavaLocalRef<jobject> Java_MotionEvent_obtainNoHistory(JNIEnv* env, jobject p0) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "obtainNoHistory", "(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;", &g_MotionEvent_obtainNoHistory); jobject ret = - env->CallStaticObjectMethod(g_MotionEvent_clazz, + env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, p0); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); @@ -420,11 +428,11 @@ static void Java_MotionEvent_recycle(JNIEnv* env, jobject obj) __attribute__ static void Java_MotionEvent_recycle(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "recycle", "()V", &g_MotionEvent_recycle); @@ -441,11 +449,11 @@ static jint Java_MotionEvent_getDeviceId(JNIEnv* env, jobject obj) __attribute__ static jint Java_MotionEvent_getDeviceId(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getDeviceId", "()I", &g_MotionEvent_getDeviceId); @@ -463,11 +471,11 @@ static jint Java_MotionEvent_getSource(JNIEnv* env, jobject obj) __attribute__ static jint Java_MotionEvent_getSource(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getSource", "()I", &g_MotionEvent_getSource); @@ -486,11 +494,11 @@ static void Java_MotionEvent_setSource(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "setSource", "(I)V", &g_MotionEvent_setSource); @@ -507,11 +515,11 @@ static jint Java_MotionEvent_getAction(JNIEnv* env, jobject obj) __attribute__ static jint Java_MotionEvent_getAction(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getAction", "()I", &g_MotionEvent_getAction); @@ -529,11 +537,11 @@ static jint Java_MotionEvent_getActionMasked(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getActionMasked(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getActionMasked", "()I", &g_MotionEvent_getActionMasked); @@ -551,11 +559,11 @@ static jint Java_MotionEvent_getActionIndex(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getActionIndex(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getActionIndex", "()I", &g_MotionEvent_getActionIndex); @@ -573,11 +581,11 @@ static jint Java_MotionEvent_getFlags(JNIEnv* env, jobject obj) __attribute__ static jint Java_MotionEvent_getFlags(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getFlags", "()I", &g_MotionEvent_getFlags); @@ -595,11 +603,11 @@ static jlong Java_MotionEvent_getDownTime(JNIEnv* env, jobject obj) static jlong Java_MotionEvent_getDownTime(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getDownTime", "()J", &g_MotionEvent_getDownTime); @@ -617,11 +625,11 @@ static jlong Java_MotionEvent_getEventTime(JNIEnv* env, jobject obj) static jlong Java_MotionEvent_getEventTime(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getEventTime", "()J", &g_MotionEvent_getEventTime); @@ -639,11 +647,11 @@ static jfloat Java_MotionEvent_getXF(JNIEnv* env, jobject obj) __attribute__ static jfloat Java_MotionEvent_getXF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getX", "()F", &g_MotionEvent_getXF); @@ -661,11 +669,11 @@ static jfloat Java_MotionEvent_getYF(JNIEnv* env, jobject obj) __attribute__ static jfloat Java_MotionEvent_getYF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getY", "()F", &g_MotionEvent_getYF); @@ -683,11 +691,11 @@ static jfloat Java_MotionEvent_getPressureF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getPressureF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPressure", "()F", &g_MotionEvent_getPressureF); @@ -705,11 +713,11 @@ static jfloat Java_MotionEvent_getSizeF(JNIEnv* env, jobject obj) __attribute__ static jfloat Java_MotionEvent_getSizeF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getSize", "()F", &g_MotionEvent_getSizeF); @@ -727,11 +735,11 @@ static jfloat Java_MotionEvent_getTouchMajorF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getTouchMajorF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getTouchMajor", "()F", &g_MotionEvent_getTouchMajorF); @@ -749,11 +757,11 @@ static jfloat Java_MotionEvent_getTouchMinorF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getTouchMinorF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getTouchMinor", "()F", &g_MotionEvent_getTouchMinorF); @@ -771,11 +779,11 @@ static jfloat Java_MotionEvent_getToolMajorF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getToolMajorF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getToolMajor", "()F", &g_MotionEvent_getToolMajorF); @@ -793,11 +801,11 @@ static jfloat Java_MotionEvent_getToolMinorF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getToolMinorF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getToolMinor", "()F", &g_MotionEvent_getToolMinorF); @@ -815,11 +823,11 @@ static jfloat Java_MotionEvent_getOrientationF(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getOrientationF(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getOrientation", "()F", &g_MotionEvent_getOrientationF); @@ -838,11 +846,11 @@ static jfloat Java_MotionEvent_getAxisValueF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getAxisValue", "(I)F", &g_MotionEvent_getAxisValueF_I); @@ -860,11 +868,11 @@ static jint Java_MotionEvent_getPointerCount(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getPointerCount(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPointerCount", "()I", &g_MotionEvent_getPointerCount); @@ -883,11 +891,11 @@ static jint Java_MotionEvent_getPointerId(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPointerId", "(I)I", &g_MotionEvent_getPointerId); @@ -906,11 +914,11 @@ static jint Java_MotionEvent_getToolType(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getToolType", "(I)I", &g_MotionEvent_getToolType); @@ -929,11 +937,11 @@ static jint Java_MotionEvent_findPointerIndex(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "findPointerIndex", "(I)I", &g_MotionEvent_findPointerIndex); @@ -952,11 +960,11 @@ static jfloat Java_MotionEvent_getXF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getX", "(I)F", &g_MotionEvent_getXF_I); @@ -975,11 +983,11 @@ static jfloat Java_MotionEvent_getYF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getY", "(I)F", &g_MotionEvent_getYF_I); @@ -998,11 +1006,11 @@ static jfloat Java_MotionEvent_getPressureF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPressure", "(I)F", &g_MotionEvent_getPressureF_I); @@ -1021,11 +1029,11 @@ static jfloat Java_MotionEvent_getSizeF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getSize", "(I)F", &g_MotionEvent_getSizeF_I); @@ -1044,11 +1052,11 @@ static jfloat Java_MotionEvent_getTouchMajorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getTouchMajor", "(I)F", &g_MotionEvent_getTouchMajorF_I); @@ -1067,11 +1075,11 @@ static jfloat Java_MotionEvent_getTouchMinorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getTouchMinor", "(I)F", &g_MotionEvent_getTouchMinorF_I); @@ -1090,11 +1098,11 @@ static jfloat Java_MotionEvent_getToolMajorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getToolMajor", "(I)F", &g_MotionEvent_getToolMajorF_I); @@ -1113,11 +1121,11 @@ static jfloat Java_MotionEvent_getToolMinorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getToolMinor", "(I)F", &g_MotionEvent_getToolMinorF_I); @@ -1136,11 +1144,11 @@ static jfloat Java_MotionEvent_getOrientationF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getOrientation", "(I)F", &g_MotionEvent_getOrientationF_I); @@ -1161,11 +1169,11 @@ static jfloat Java_MotionEvent_getAxisValueF_I_I(JNIEnv* env, jobject obj, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getAxisValue", "(II)F", &g_MotionEvent_getAxisValueF_I_I); @@ -1186,11 +1194,11 @@ static void Java_MotionEvent_getPointerCoords(JNIEnv* env, jobject obj, jobject p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPointerCoords", "(ILandroid/view/MotionEvent$PointerCoords;)V", &g_MotionEvent_getPointerCoords); @@ -1210,11 +1218,11 @@ static void Java_MotionEvent_getPointerProperties(JNIEnv* env, jobject obj, jobject p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getPointerProperties", "(ILandroid/view/MotionEvent$PointerProperties;)V", &g_MotionEvent_getPointerProperties); @@ -1231,11 +1239,11 @@ static jint Java_MotionEvent_getMetaState(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getMetaState(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getMetaState", "()I", &g_MotionEvent_getMetaState); @@ -1253,11 +1261,11 @@ static jint Java_MotionEvent_getButtonState(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getButtonState(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getButtonState", "()I", &g_MotionEvent_getButtonState); @@ -1275,11 +1283,11 @@ static jfloat Java_MotionEvent_getRawX(JNIEnv* env, jobject obj) __attribute__ static jfloat Java_MotionEvent_getRawX(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getRawX", "()F", &g_MotionEvent_getRawX); @@ -1297,11 +1305,11 @@ static jfloat Java_MotionEvent_getRawY(JNIEnv* env, jobject obj) __attribute__ static jfloat Java_MotionEvent_getRawY(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getRawY", "()F", &g_MotionEvent_getRawY); @@ -1319,11 +1327,11 @@ static jfloat Java_MotionEvent_getXPrecision(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getXPrecision(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getXPrecision", "()F", &g_MotionEvent_getXPrecision); @@ -1341,11 +1349,11 @@ static jfloat Java_MotionEvent_getYPrecision(JNIEnv* env, jobject obj) static jfloat Java_MotionEvent_getYPrecision(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getYPrecision", "()F", &g_MotionEvent_getYPrecision); @@ -1363,11 +1371,11 @@ static jint Java_MotionEvent_getHistorySize(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getHistorySize(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistorySize", "()I", &g_MotionEvent_getHistorySize); @@ -1386,11 +1394,11 @@ static jlong Java_MotionEvent_getHistoricalEventTime(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalEventTime", "(I)J", &g_MotionEvent_getHistoricalEventTime); @@ -1409,11 +1417,11 @@ static jfloat Java_MotionEvent_getHistoricalXF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalX", "(I)F", &g_MotionEvent_getHistoricalXF_I); @@ -1432,11 +1440,11 @@ static jfloat Java_MotionEvent_getHistoricalYF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalY", "(I)F", &g_MotionEvent_getHistoricalYF_I); @@ -1455,11 +1463,11 @@ static jfloat Java_MotionEvent_getHistoricalPressureF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalPressure", "(I)F", &g_MotionEvent_getHistoricalPressureF_I); @@ -1478,11 +1486,11 @@ static jfloat Java_MotionEvent_getHistoricalSizeF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalSize", "(I)F", &g_MotionEvent_getHistoricalSizeF_I); @@ -1501,11 +1509,11 @@ static jfloat Java_MotionEvent_getHistoricalTouchMajorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalTouchMajor", "(I)F", &g_MotionEvent_getHistoricalTouchMajorF_I); @@ -1524,11 +1532,11 @@ static jfloat Java_MotionEvent_getHistoricalTouchMinorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalTouchMinor", "(I)F", &g_MotionEvent_getHistoricalTouchMinorF_I); @@ -1547,11 +1555,11 @@ static jfloat Java_MotionEvent_getHistoricalToolMajorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalToolMajor", "(I)F", &g_MotionEvent_getHistoricalToolMajorF_I); @@ -1570,11 +1578,11 @@ static jfloat Java_MotionEvent_getHistoricalToolMinorF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalToolMinor", "(I)F", &g_MotionEvent_getHistoricalToolMinorF_I); @@ -1593,11 +1601,11 @@ static jfloat Java_MotionEvent_getHistoricalOrientationF_I(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalOrientation", "(I)F", &g_MotionEvent_getHistoricalOrientationF_I); @@ -1618,11 +1626,11 @@ static jfloat Java_MotionEvent_getHistoricalAxisValueF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalAxisValue", "(II)F", &g_MotionEvent_getHistoricalAxisValueF_I_I); @@ -1643,11 +1651,11 @@ static jfloat Java_MotionEvent_getHistoricalXF_I_I(JNIEnv* env, jobject obj, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalX", "(II)F", &g_MotionEvent_getHistoricalXF_I_I); @@ -1668,11 +1676,11 @@ static jfloat Java_MotionEvent_getHistoricalYF_I_I(JNIEnv* env, jobject obj, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalY", "(II)F", &g_MotionEvent_getHistoricalYF_I_I); @@ -1693,11 +1701,11 @@ static jfloat Java_MotionEvent_getHistoricalPressureF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalPressure", "(II)F", &g_MotionEvent_getHistoricalPressureF_I_I); @@ -1718,11 +1726,11 @@ static jfloat Java_MotionEvent_getHistoricalSizeF_I_I(JNIEnv* env, jobject obj, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalSize", "(II)F", &g_MotionEvent_getHistoricalSizeF_I_I); @@ -1743,11 +1751,11 @@ static jfloat Java_MotionEvent_getHistoricalTouchMajorF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalTouchMajor", "(II)F", &g_MotionEvent_getHistoricalTouchMajorF_I_I); @@ -1768,11 +1776,11 @@ static jfloat Java_MotionEvent_getHistoricalTouchMinorF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalTouchMinor", "(II)F", &g_MotionEvent_getHistoricalTouchMinorF_I_I); @@ -1793,11 +1801,11 @@ static jfloat Java_MotionEvent_getHistoricalToolMajorF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalToolMajor", "(II)F", &g_MotionEvent_getHistoricalToolMajorF_I_I); @@ -1818,11 +1826,11 @@ static jfloat Java_MotionEvent_getHistoricalToolMinorF_I_I(JNIEnv* env, jobject JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalToolMinor", "(II)F", &g_MotionEvent_getHistoricalToolMinorF_I_I); @@ -1843,11 +1851,11 @@ static jfloat Java_MotionEvent_getHistoricalOrientationF_I_I(JNIEnv* env, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalOrientation", "(II)F", &g_MotionEvent_getHistoricalOrientationF_I_I); @@ -1870,11 +1878,11 @@ static jfloat Java_MotionEvent_getHistoricalAxisValueF_I_I_I(JNIEnv* env, JniIntWrapper p2) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalAxisValue", "(III)F", &g_MotionEvent_getHistoricalAxisValueF_I_I_I); @@ -1897,11 +1905,11 @@ static void Java_MotionEvent_getHistoricalPointerCoords(JNIEnv* env, jobject jobject p2) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getHistoricalPointerCoords", "(IILandroid/view/MotionEvent$PointerCoords;)V", &g_MotionEvent_getHistoricalPointerCoords); @@ -1918,11 +1926,11 @@ static jint Java_MotionEvent_getEdgeFlags(JNIEnv* env, jobject obj) static jint Java_MotionEvent_getEdgeFlags(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, 0); + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "getEdgeFlags", "()I", &g_MotionEvent_getEdgeFlags); @@ -1941,11 +1949,11 @@ static void Java_MotionEvent_setEdgeFlags(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "setEdgeFlags", "(I)V", &g_MotionEvent_setEdgeFlags); @@ -1963,11 +1971,11 @@ static void Java_MotionEvent_setAction(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "setAction", "(I)V", &g_MotionEvent_setAction); @@ -1985,11 +1993,11 @@ static void Java_MotionEvent_offsetLocation(JNIEnv* env, jobject obj, jfloat p0, jfloat p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "offsetLocation", "(FF)V", &g_MotionEvent_offsetLocation); @@ -2007,11 +2015,11 @@ static void Java_MotionEvent_setLocation(JNIEnv* env, jobject obj, jfloat p0, jfloat p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "setLocation", "(FF)V", &g_MotionEvent_setLocation); @@ -2028,11 +2036,11 @@ static void Java_MotionEvent_transform(JNIEnv* env, jobject obj, jobject p0) static void Java_MotionEvent_transform(JNIEnv* env, jobject obj, jobject p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "transform", "(Landroid/graphics/Matrix;)V", &g_MotionEvent_transform); @@ -2060,11 +2068,11 @@ static void Java_MotionEvent_addBatchV_J_F_F_F_F_I(JNIEnv* env, jobject obj, JniIntWrapper p5) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "addBatch", "(JFFFFI)V", &g_MotionEvent_addBatchV_J_F_F_F_F_I); @@ -2086,11 +2094,11 @@ static void Java_MotionEvent_addBatchV_J_LAVMEPC_I(JNIEnv* env, jobject obj, JniIntWrapper p2) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "addBatch", "(J[Landroid/view/MotionEvent$PointerCoords;I)V", &g_MotionEvent_addBatchV_J_LAVMEPC_I); @@ -2109,11 +2117,11 @@ static base::android::ScopedJavaLocalRef<jstring> Java_MotionEvent_toString(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz, NULL); + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "toString", "()Ljava/lang/String;", &g_MotionEvent_toString); @@ -2132,18 +2140,18 @@ static base::android::ScopedJavaLocalRef<jstring> static base::android::ScopedJavaLocalRef<jstring> Java_MotionEvent_actionToString(JNIEnv* env, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "actionToString", "(I)Ljava/lang/String;", &g_MotionEvent_actionToString); jstring ret = - static_cast<jstring>(env->CallStaticObjectMethod(g_MotionEvent_clazz, + static_cast<jstring>(env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, as_jint(p0))); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jstring>(env, ret); @@ -2156,18 +2164,18 @@ static base::android::ScopedJavaLocalRef<jstring> static base::android::ScopedJavaLocalRef<jstring> Java_MotionEvent_axisToString(JNIEnv* env, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, NULL); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "axisToString", "(I)Ljava/lang/String;", &g_MotionEvent_axisToString); jstring ret = - static_cast<jstring>(env->CallStaticObjectMethod(g_MotionEvent_clazz, + static_cast<jstring>(env->CallStaticObjectMethod(MotionEvent_clazz(env), method_id, as_jint(p0))); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jstring>(env, ret); @@ -2178,18 +2186,18 @@ static jint Java_MotionEvent_axisFromString(JNIEnv* env, jstring p0) __attribute__ ((unused)); static jint Java_MotionEvent_axisFromString(JNIEnv* env, jstring p0) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_MotionEvent_clazz, - g_MotionEvent_clazz, 0); + CHECK_CLAZZ(env, MotionEvent_clazz(env), + MotionEvent_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "axisFromString", "(Ljava/lang/String;)I", &g_MotionEvent_axisFromString); jint ret = - env->CallStaticIntMethod(g_MotionEvent_clazz, + env->CallStaticIntMethod(MotionEvent_clazz(env), method_id, p0); jni_generator::CheckException(env); return ret; @@ -2202,11 +2210,11 @@ static void Java_MotionEvent_writeToParcel(JNIEnv* env, jobject obj, jobject p0, JniIntWrapper p1) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_MotionEvent_clazz); + MotionEvent_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_MotionEvent_clazz, + env, MotionEvent_clazz(env), "writeToParcel", "(Landroid/os/Parcel;I)V", &g_MotionEvent_writeToParcel); diff --git a/base/android/jni_generator/testEagerCalledByNativesOption.golden b/base/android/jni_generator/testEagerCalledByNativesOption.golden index 4ff81ac..f2b224b 100644 --- a/base/android/jni_generator/testEagerCalledByNativesOption.golden +++ b/base/android/jni_generator/testEagerCalledByNativesOption.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kTestClassPath[] = "org/chromium/example/jni_generator/Test"; +#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_Test_clazz = NULL; +jclass Test_clazz(JNIEnv*) { return g_Test_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif jmethodID g_Test_testMethodWithParam = NULL; jmethodID g_Test_testStaticMethodWithParam = NULL; jmethodID g_Test_testMethodWithNoParam = NULL; @@ -46,20 +54,21 @@ static void testMethodWithParam(JNIEnv* env, jobject obj, JniIntWrapper iParam) } static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) { - jint ret = env->CallStaticIntMethod(g_Test_clazz, + jint ret = env->CallStaticIntMethod(Test_clazz(env), g_Test_testStaticMethodWithParam, as_jint(iParam)); return ret; } static jdouble testMethodWithNoParam(JNIEnv* env) { - jdouble ret = env->CallStaticDoubleMethod(g_Test_clazz, + jdouble ret = env->CallStaticDoubleMethod(Test_clazz(env), g_Test_testMethodWithNoParam); return ret; } static base::android::ScopedJavaLocalRef<jstring> testStaticMethodWithNoParam(JNIEnv* env) { - jstring ret = static_cast<jstring>(env->CallStaticObjectMethod(g_Test_clazz, + jstring ret = + static_cast<jstring>(env->CallStaticObjectMethod(Test_clazz(env), g_Test_testStaticMethodWithNoParam)); return base::android::ScopedJavaLocalRef<jstring>(env, ret); } @@ -81,16 +90,16 @@ static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { const int kMethodsTestSize = arraysize(kMethodsTest); - if (env->RegisterNatives(g_Test_clazz, + if (env->RegisterNatives(Test_clazz(env), kMethodsTest, kMethodsTestSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Test_clazz, __FILE__); + env, Test_clazz(env), __FILE__); return false; } g_Test_testMethodWithParam = env->GetMethodID( - g_Test_clazz, + Test_clazz(env), "testMethodWithParam", "(" "I" @@ -101,7 +110,7 @@ static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { } g_Test_testStaticMethodWithParam = env->GetStaticMethodID( - g_Test_clazz, + Test_clazz(env), "testStaticMethodWithParam", "(" "I" @@ -112,7 +121,7 @@ static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { } g_Test_testMethodWithNoParam = env->GetStaticMethodID( - g_Test_clazz, + Test_clazz(env), "testMethodWithNoParam", "(" ")" @@ -122,7 +131,7 @@ static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { } g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID( - g_Test_clazz, + Test_clazz(env), "testStaticMethodWithNoParam", "(" ")" diff --git a/base/android/jni_generator/testFromJavaP.golden b/base/android/jni_generator/testFromJavaP.golden index 34e2118..29364b3 100644 --- a/base/android/jni_generator/testFromJavaP.golden +++ b/base/android/jni_generator/testFromJavaP.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kInputStreamClassPath[] = "java/io/InputStream"; +#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_InputStream_clazz = NULL; +jclass InputStream_clazz(JNIEnv*) { return g_InputStream_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -34,11 +42,11 @@ static jint Java_InputStream_available(JNIEnv* env, jobject obj) __attribute__ static jint Java_InputStream_available(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, 0); + InputStream_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "available", "()I", &g_InputStream_available); @@ -56,11 +64,11 @@ static void Java_InputStream_close(JNIEnv* env, jobject obj) __attribute__ static void Java_InputStream_close(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz); + InputStream_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "close", "()V", &g_InputStream_close); @@ -77,11 +85,11 @@ static void Java_InputStream_mark(JNIEnv* env, jobject obj, JniIntWrapper p0) static void Java_InputStream_mark(JNIEnv* env, jobject obj, JniIntWrapper p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz); + InputStream_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "mark", "(I)V", &g_InputStream_mark); @@ -98,11 +106,11 @@ static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, false); + InputStream_clazz(env), false); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "markSupported", "()Z", &g_InputStream_markSupported); @@ -120,11 +128,11 @@ static jint Java_InputStream_readI(JNIEnv* env, jobject obj) __attribute__ static jint Java_InputStream_readI(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, 0); + InputStream_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "read", "()I", &g_InputStream_readI); @@ -142,11 +150,11 @@ static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) static jint Java_InputStream_readI_AB(JNIEnv* env, jobject obj, jbyteArray p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, 0); + InputStream_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "read", "([B)I", &g_InputStream_readI_AB); @@ -169,11 +177,11 @@ static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray JniIntWrapper p2) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, 0); + InputStream_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "read", "([BII)I", &g_InputStream_readI_AB_I_I); @@ -191,11 +199,11 @@ static void Java_InputStream_reset(JNIEnv* env, jobject obj) __attribute__ static void Java_InputStream_reset(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz); + InputStream_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "reset", "()V", &g_InputStream_reset); @@ -212,11 +220,11 @@ static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_InputStream_clazz, 0); + InputStream_clazz(env), 0); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "skip", "(J)J", &g_InputStream_skip); @@ -234,18 +242,18 @@ static base::android::ScopedJavaLocalRef<jobject> static base::android::ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_InputStream_clazz, - g_InputStream_clazz, NULL); + CHECK_CLAZZ(env, InputStream_clazz(env), + InputStream_clazz(env), NULL); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_InputStream_clazz, + env, InputStream_clazz(env), "<init>", "()V", &g_InputStream_Constructor); jobject ret = - env->NewObject(g_InputStream_clazz, + env->NewObject(InputStream_clazz(env), method_id); jni_generator::CheckException(env); return base::android::ScopedJavaLocalRef<jobject>(env, ret); diff --git a/base/android/jni_generator/testFromJavaPGenerics.golden b/base/android/jni_generator/testFromJavaPGenerics.golden index 48582fd..e4df769 100644 --- a/base/android/jni_generator/testFromJavaPGenerics.golden +++ b/base/android/jni_generator/testFromJavaPGenerics.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kHashSetClassPath[] = "java/util/HashSet"; +#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_HashSet_clazz = NULL; +jclass HashSet_clazz(JNIEnv*) { return g_HashSet_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -34,11 +42,11 @@ static void Java_HashSet_dummy(JNIEnv* env, jobject obj) __attribute__ static void Java_HashSet_dummy(JNIEnv* env, jobject obj) { /* Must call RegisterNativesImpl() */ CHECK_CLAZZ(env, obj, - g_HashSet_clazz); + HashSet_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_INSTANCE>( - env, g_HashSet_clazz, + env, HashSet_clazz(env), "dummy", "()V", &g_HashSet_dummy); diff --git a/base/android/jni_generator/testInnerClassNatives.golden b/base/android/jni_generator/testInnerClassNatives.golden index 56a2e9b2..e1909fd 100644 --- a/base/android/jni_generator/testInnerClassNatives.golden +++ b/base/android/jni_generator/testInnerClassNatives.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -20,8 +20,16 @@ namespace { const char kTestJniClassPath[] = "org/chromium/TestJni"; const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -44,11 +52,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass); - if (env->RegisterNatives(g_MyInnerClass_clazz, + if (env->RegisterNatives(MyInnerClass_clazz(env), kMethodsMyInnerClass, kMethodsMyInnerClassSize) < 0) { jni_generator::HandleRegistrationError( - env, g_MyInnerClass_clazz, __FILE__); + env, MyInnerClass_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden index 07b857f..2fd0986 100644 --- a/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden +++ b/base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -21,8 +21,16 @@ namespace { const char kMyOtherInnerClassClassPath[] = "org/chromium/TestJni$MyOtherInnerClass"; const char kTestJniClassPath[] = "org/chromium/TestJni"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -55,21 +63,21 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsMyOtherInnerClassSize = arraysize(kMethodsMyOtherInnerClass); - if (env->RegisterNatives(g_MyOtherInnerClass_clazz, + if (env->RegisterNatives(MyOtherInnerClass_clazz(env), kMethodsMyOtherInnerClass, kMethodsMyOtherInnerClassSize) < 0) { jni_generator::HandleRegistrationError( - env, g_MyOtherInnerClass_clazz, __FILE__); + env, MyOtherInnerClass_clazz(env), __FILE__); return false; } const int kMethodsTestJniSize = arraysize(kMethodsTestJni); - if (env->RegisterNatives(g_TestJni_clazz, + if (env->RegisterNatives(TestJni_clazz(env), kMethodsTestJni, kMethodsTestJniSize) < 0) { jni_generator::HandleRegistrationError( - env, g_TestJni_clazz, __FILE__); + env, TestJni_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testInnerClassNativesMultiple.golden b/base/android/jni_generator/testInnerClassNativesMultiple.golden index 6a7f04d..e557e63 100644 --- a/base/android/jni_generator/testInnerClassNativesMultiple.golden +++ b/base/android/jni_generator/testInnerClassNativesMultiple.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -22,8 +22,16 @@ const char kMyOtherInnerClassClassPath[] = "org/chromium/TestJni$MyOtherInnerClass"; const char kTestJniClassPath[] = "org/chromium/TestJni"; const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -56,21 +64,21 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsMyOtherInnerClassSize = arraysize(kMethodsMyOtherInnerClass); - if (env->RegisterNatives(g_MyOtherInnerClass_clazz, + if (env->RegisterNatives(MyOtherInnerClass_clazz(env), kMethodsMyOtherInnerClass, kMethodsMyOtherInnerClassSize) < 0) { jni_generator::HandleRegistrationError( - env, g_MyOtherInnerClass_clazz, __FILE__); + env, MyOtherInnerClass_clazz(env), __FILE__); return false; } const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass); - if (env->RegisterNatives(g_MyInnerClass_clazz, + if (env->RegisterNatives(MyInnerClass_clazz(env), kMethodsMyInnerClass, kMethodsMyInnerClassSize) < 0) { jni_generator::HandleRegistrationError( - env, g_MyInnerClass_clazz, __FILE__); + env, MyInnerClass_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testJNIInitNativeNameOption.golden b/base/android/jni_generator/testJNIInitNativeNameOption.golden index 0d5d3c6..1ddaa66 100644 --- a/base/android/jni_generator/testJNIInitNativeNameOption.golden +++ b/base/android/jni_generator/testJNIInitNativeNameOption.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kTestClassPath[] = "org/chromium/example/jni_generator/Test"; +#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_Test_clazz = NULL; +jclass Test_clazz(JNIEnv*) { return g_Test_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -49,11 +57,11 @@ static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { const int kMethodsTestSize = arraysize(kMethodsTest); - if (env->RegisterNatives(g_Test_clazz, + if (env->RegisterNatives(Test_clazz(env), kMethodsTest, kMethodsTestSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Test_clazz, __FILE__); + env, Test_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testJarJarRemapping.golden b/base/android/jni_generator/testJarJarRemapping.golden index 9b2c0b3..3325db0 100644 --- a/base/android/jni_generator/testJarJarRemapping.golden +++ b/base/android/jni_generator/testJarJarRemapping.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kExampleClassPath[] = "com/test/jni_generator/Example"; +#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_Example_clazz = NULL; +jclass Example_clazz(JNIEnv*) { return g_Example_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -69,11 +77,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsExampleSize = arraysize(kMethodsExample); - if (env->RegisterNatives(g_Example_clazz, + if (env->RegisterNatives(Example_clazz(env), kMethodsExample, kMethodsExampleSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Example_clazz, __FILE__); + env, Example_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden index 9cc1256..49f510b 100644 --- a/base/android/jni_generator/testMultipleJNIAdditionalImport.golden +++ b/base/android/jni_generator/testMultipleJNIAdditionalImport.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kFooClassPath[] = "org/chromium/foo/Foo"; +#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_Foo_clazz = NULL; +jclass Foo_clazz(JNIEnv*) { return g_Foo_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -34,12 +42,12 @@ static base::subtle::AtomicWord g_Foo_calledByNative = 0; static void Java_Foo_calledByNative(JNIEnv* env, jobject callback1, jobject callback2) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_Foo_clazz, - g_Foo_clazz); + CHECK_CLAZZ(env, Foo_clazz(env), + Foo_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_Foo_clazz, + env, Foo_clazz(env), "calledByNative", "(" @@ -49,7 +57,7 @@ static void Java_Foo_calledByNative(JNIEnv* env, jobject callback1, "V", &g_Foo_calledByNative); - env->CallStaticVoidMethod(g_Foo_clazz, + env->CallStaticVoidMethod(Foo_clazz(env), method_id, callback1, callback2); jni_generator::CheckException(env); @@ -72,11 +80,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsFooSize = arraysize(kMethodsFoo); - if (env->RegisterNatives(g_Foo_clazz, + if (env->RegisterNatives(Foo_clazz(env), kMethodsFoo, kMethodsFooSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Foo_clazz, __FILE__); + env, Foo_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testNativeExportsOption.golden b/base/android/jni_generator/testNativeExportsOption.golden index 231be7c..9c25801 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; } diff --git a/base/android/jni_generator/testNatives.golden b/base/android/jni_generator/testNatives.golden index db69a5a..e016aa1 100644 --- a/base/android/jni_generator/testNatives.golden +++ b/base/android/jni_generator/testNatives.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kTestJniClassPath[] = "org/chromium/TestJni"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -202,11 +210,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsTestJniSize = arraysize(kMethodsTestJni); - if (env->RegisterNatives(g_TestJni_clazz, + if (env->RegisterNatives(TestJni_clazz(env), kMethodsTestJni, kMethodsTestJniSize) < 0) { jni_generator::HandleRegistrationError( - env, g_TestJni_clazz, __FILE__); + env, TestJni_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testNativesLong.golden b/base/android/jni_generator/testNativesLong.golden index 25b5fad..6fafb56 100644 --- a/base/android/jni_generator/testNativesLong.golden +++ b/base/android/jni_generator/testNativesLong.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kTestJniClassPath[] = "org/chromium/TestJni"; +#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_TestJni_clazz = NULL; +jclass TestJni_clazz(JNIEnv*) { return g_TestJni_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -49,11 +57,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsTestJniSize = arraysize(kMethodsTestJni); - if (env->RegisterNatives(g_TestJni_clazz, + if (env->RegisterNatives(TestJni_clazz(env), kMethodsTestJni, kMethodsTestJniSize) < 0) { jni_generator::HandleRegistrationError( - env, g_TestJni_clazz, __FILE__); + env, TestJni_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testPureNativeMethodsOption.golden b/base/android/jni_generator/testPureNativeMethodsOption.golden index 8d9ee9e..84efd54 100644 --- a/base/android/jni_generator/testPureNativeMethodsOption.golden +++ b/base/android/jni_generator/testPureNativeMethodsOption.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kTestClassPath[] = "org/chromium/example/jni_generator/Test"; +#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_Test_clazz = NULL; +jclass Test_clazz(JNIEnv*) { return g_Test_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -50,11 +58,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsTestSize = arraysize(kMethodsTest); - if (env->RegisterNatives(g_Test_clazz, + if (env->RegisterNatives(Test_clazz(env), kMethodsTest, kMethodsTestSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Test_clazz, __FILE__); + env, Test_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_generator/testSingleJNIAdditionalImport.golden b/base/android/jni_generator/testSingleJNIAdditionalImport.golden index e395657..2c48306 100644 --- a/base/android/jni_generator/testSingleJNIAdditionalImport.golden +++ b/base/android/jni_generator/testSingleJNIAdditionalImport.golden @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -19,8 +19,16 @@ // Step 1: forward declarations. namespace { const char kFooClassPath[] = "org/chromium/foo/Foo"; +#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_Foo_clazz = NULL; +jclass Foo_clazz(JNIEnv*) { return g_Foo_clazz; } +#if __clang__ +#pragma clang diagnostic pop +#endif } // namespace @@ -32,12 +40,12 @@ static void DoSomething(JNIEnv* env, jclass jcaller, static base::subtle::AtomicWord g_Foo_calledByNative = 0; static void Java_Foo_calledByNative(JNIEnv* env, jobject callback) { /* Must call RegisterNativesImpl() */ - CHECK_CLAZZ(env, g_Foo_clazz, - g_Foo_clazz); + CHECK_CLAZZ(env, Foo_clazz(env), + Foo_clazz(env)); jmethodID method_id = base::android::MethodID::LazyGet< base::android::MethodID::TYPE_STATIC>( - env, g_Foo_clazz, + env, Foo_clazz(env), "calledByNative", "(" @@ -46,7 +54,7 @@ static void Java_Foo_calledByNative(JNIEnv* env, jobject callback) { "V", &g_Foo_calledByNative); - env->CallStaticVoidMethod(g_Foo_clazz, + env->CallStaticVoidMethod(Foo_clazz(env), method_id, callback); jni_generator::CheckException(env); @@ -68,11 +76,11 @@ static bool RegisterNativesImpl(JNIEnv* env) { const int kMethodsFooSize = arraysize(kMethodsFoo); - if (env->RegisterNatives(g_Foo_clazz, + if (env->RegisterNatives(Foo_clazz(env), kMethodsFoo, kMethodsFooSize) < 0) { jni_generator::HandleRegistrationError( - env, g_Foo_clazz, __FILE__); + env, Foo_clazz(env), __FILE__); return false; } diff --git a/base/android/jni_utils.cc b/base/android/jni_utils.cc new file mode 100644 index 0000000..b4d682b --- /dev/null +++ b/base/android/jni_utils.cc @@ -0,0 +1,25 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/android/jni_utils.h" + +#include "base/android/jni_android.h" +#include "base/android/scoped_java_ref.h" + +#include "jni/JNIUtils_jni.h" + +namespace base { +namespace android { + +ScopedJavaLocalRef<jobject> GetClassLoader(JNIEnv* env) { + return Java_JNIUtils_getClassLoader(env); +} + +bool RegisterJNIUtils(JNIEnv* env) { + return RegisterNativesImpl(env); +} + +} // namespace android +} // namespace base + diff --git a/base/android/jni_utils.h b/base/android/jni_utils.h new file mode 100644 index 0000000..b793aed --- /dev/null +++ b/base/android/jni_utils.h @@ -0,0 +1,27 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_ANDROID_JNI_UTILS_H_ +#define BASE_ANDROID_JNI_UTILS_H_ + +#include <jni.h> + +#include "base/android/scoped_java_ref.h" + +namespace base { + +namespace android { + +// Gets a ClassLoader instance capable of loading Chromium java classes. +// This should be called either from JNI_OnLoad or from within a method called +// via JNI from Java. +BASE_EXPORT ScopedJavaLocalRef<jobject> GetClassLoader(JNIEnv* env); + +bool RegisterJNIUtils(JNIEnv* env); + +} // namespace android +} // namespace base + +#endif // BASE_ANDROID_JNI_UTILS_H_ + diff --git a/base/base.gyp b/base/base.gyp index ee19b8b..d3c397c 100644 --- a/base/base.gyp +++ b/base/base.gyp @@ -1282,6 +1282,7 @@ 'android/java/src/org/chromium/base/EventLog.java', 'android/java/src/org/chromium/base/FieldTrialList.java', 'android/java/src/org/chromium/base/ImportantFileWriterAndroid.java', + 'android/java/src/org/chromium/base/JNIUtils.java', 'android/java/src/org/chromium/base/library_loader/LibraryLoader.java', 'android/java/src/org/chromium/base/MemoryPressureListener.java', 'android/java/src/org/chromium/base/JavaHandlerThread.java', diff --git a/base/base.gypi b/base/base.gypi index 8a3a56c..cfa9d61 100644 --- a/base/base.gypi +++ b/base/base.gypi @@ -55,6 +55,8 @@ 'android/jni_registrar.h', 'android/jni_string.cc', 'android/jni_string.h', + 'android/jni_utils.cc', + 'android/jni_utils.h', 'android/jni_weak_ref.cc', 'android/jni_weak_ref.h', 'android/library_loader/library_loader_hooks.cc', diff --git a/ui/gl/android/scoped_java_surface.cc b/ui/gl/android/scoped_java_surface.cc index 36f635f..ae4f81a 100644 --- a/ui/gl/android/scoped_java_surface.cc +++ b/ui/gl/android/scoped_java_surface.cc @@ -32,7 +32,7 @@ ScopedJavaSurface::ScopedJavaSurface( is_protected_(false) { JNIEnv* env = base::android::AttachCurrentThread(); RegisterNativesIfNeeded(env); - DCHECK(env->IsInstanceOf(surface.obj(), g_Surface_clazz)); + DCHECK(env->IsInstanceOf(surface.obj(), Surface_clazz(env))); j_surface_.Reset(surface); } |