summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--android_webview/lib/main/webview_entry_point.cc4
-rw-r--r--base/BUILD.gn3
-rw-r--r--base/android/base_jni_registrar.cc2
-rw-r--r--base/android/java/src/org/chromium/base/JNIUtils.java20
-rw-r--r--base/android/jni_android.cc57
-rw-r--r--base/android/jni_android.h20
-rw-r--r--base/android/jni_generator/golden_sample_for_tests_jni.h60
-rwxr-xr-xbase/android/jni_generator/jni_generator.py61
-rw-r--r--base/android/jni_generator/testCalledByNatives.golden91
-rw-r--r--base/android/jni_generator/testConstantsFromJavaP.golden394
-rw-r--r--base/android/jni_generator/testEagerCalledByNativesOption.golden29
-rw-r--r--base/android/jni_generator/testFromJavaP.golden54
-rw-r--r--base/android/jni_generator/testFromJavaPGenerics.golden14
-rw-r--r--base/android/jni_generator/testInnerClassNatives.golden14
-rw-r--r--base/android/jni_generator/testInnerClassNativesBothInnerAndOuter.golden18
-rw-r--r--base/android/jni_generator/testInnerClassNativesMultiple.golden18
-rw-r--r--base/android/jni_generator/testJNIInitNativeNameOption.golden14
-rw-r--r--base/android/jni_generator/testJarJarRemapping.golden14
-rw-r--r--base/android/jni_generator/testMultipleJNIAdditionalImport.golden22
-rw-r--r--base/android/jni_generator/testNativeExportsOption.golden48
-rw-r--r--base/android/jni_generator/testNatives.golden14
-rw-r--r--base/android/jni_generator/testNativesLong.golden14
-rw-r--r--base/android/jni_generator/testPureNativeMethodsOption.golden14
-rw-r--r--base/android/jni_generator/testSingleJNIAdditionalImport.golden22
-rw-r--r--base/android/jni_utils.cc25
-rw-r--r--base/android/jni_utils.h27
-rw-r--r--base/base.gyp1
-rw-r--r--base/base.gypi2
-rw-r--r--ui/gl/android/scoped_java_surface.cc2
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);
}