Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1843)

Unified Diff: base/android/jni_generator/jni_generator_tests.py

Issue 11038015: Android: lazy initialization for method id. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Tidy up + tests Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: base/android/jni_generator/jni_generator_tests.py
diff --git a/base/android/jni_generator/jni_generator_tests.py b/base/android/jni_generator/jni_generator_tests.py
index fdedc972b4cef06dc01ce5c8f220e256a5337e6a..0301eb2c50ab623ac46ea11eac72661fff22ce68 100755
--- a/base/android/jni_generator/jni_generator_tests.py
+++ b/base/android/jni_generator/jni_generator_tests.py
@@ -315,19 +315,16 @@ static void GotOrientation(JNIEnv* env, jobject obj,
jdouble gamma) {
DCHECK(nativeDataFetcherImplAndroid) << "GotOrientation";
DataFetcherImplAndroid* native =
- reinterpret_cast<DataFetcherImplAndroid*>(nativeDataFetcherImplAndroid);
+ reinterpret_cast<DataFetcherImplAndroid*>(nativeDataFetcherImplAndroid);
return native->GotOrientation(env, obj, alpha, beta, gamma);
}
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kTestJniClassPath)));
-}
+// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kTestJniClassPath)));
static const JNINativeMethod kMethodsTestJni[] = {
{ "nativeInit",
"("
@@ -481,15 +478,12 @@ static jint Init(JNIEnv* env, jobject obj);
// Step 2: method stubs.
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kTestJniClassPath)));
-}
+// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kTestJniClassPath)));
static const JNINativeMethod kMethodsMyInnerClass[] = {
{ "nativeInit",
"("
@@ -575,15 +569,12 @@ static jint Init(JNIEnv* env, jobject obj);
// Step 2: method stubs.
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kTestJniClassPath)));
-}
+// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kTestJniClassPath)));
static const JNINativeMethod kMethodsMyOtherInnerClass[] = {
{ "nativeInit",
"("
@@ -683,15 +674,12 @@ static jint Init(JNIEnv* env, jobject obj);
// Step 2: method stubs.
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kTestJniClassPath)));
-}
+// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kTestJniClassPath)));
static const JNINativeMethod kMethodsMyOtherInnerClass[] = {
{ "nativeInit",
"("
@@ -919,7 +907,23 @@ static ScopedJavaLocalRef<jobject> Java_TestJni_showConfirmInfoBar(JNIEnv* env,
jobject icon) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_showConfirmInfoBar);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "showConfirmInfoBar",
+
+"("
+"I"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+"Landroid/graphics/Bitmap;"
+")"
+"Lcom/google/android/apps/chrome/infobar/InfoBarContainer$NativeInfoBar;",
+ &g_TestJni_showConfirmInfoBar);
+
jobject ret =
env->CallObjectMethod(obj,
g_TestJni_showConfirmInfoBar, nativeInfoBar, buttonOk, buttonCancel,
@@ -936,7 +940,22 @@ static ScopedJavaLocalRef<jobject> Java_TestJni_showAutoLoginInfoBar(JNIEnv*
jstring args) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_showAutoLoginInfoBar);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "showAutoLoginInfoBar",
+
+"("
+"I"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+")"
+"Lcom/google/android/apps/chrome/infobar/InfoBarContainer$NativeInfoBar;",
+ &g_TestJni_showAutoLoginInfoBar);
+
jobject ret =
env->CallObjectMethod(obj,
g_TestJni_showAutoLoginInfoBar, nativeInfoBar, realm, account, args);
@@ -948,7 +967,17 @@ static jmethodID g_InfoBar_dismiss = 0;
static void Java_InfoBar_dismiss(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InfoBar_clazz);
- DCHECK(g_InfoBar_dismiss);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_InfoBar_clazz,
+ "dismiss",
+
+"("
+")"
+"V",
+ &g_InfoBar_dismiss);
env->CallVoidMethod(obj,
g_InfoBar_dismiss);
@@ -964,7 +993,22 @@ static jboolean Java_TestJni_shouldShowAutoLogin(JNIEnv* env, jobject
jstring args) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_shouldShowAutoLogin);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_STATIC,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "shouldShowAutoLogin",
+
+"("
+"Lorg/chromium/content/browser/ContentViewCore;"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+"Ljava/lang/String;"
+")"
+"Z",
+ &g_TestJni_shouldShowAutoLogin);
+
jboolean ret =
env->CallStaticBooleanMethod(g_TestJni_clazz,
g_TestJni_shouldShowAutoLogin, contentView, realm, account, args);
@@ -977,7 +1021,19 @@ static ScopedJavaLocalRef<jobject> Java_TestJni_openUrl(JNIEnv* env, jstring
url) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_openUrl);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_STATIC,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "openUrl",
+
+"("
+"Ljava/lang/String;"
+")"
+"Ljava/io/InputStream;",
+ &g_TestJni_openUrl);
+
jobject ret =
env->CallStaticObjectMethod(g_TestJni_clazz,
g_TestJni_openUrl, url);
@@ -994,7 +1050,22 @@ static void Java_TestJni_activateHardwareAcceleration(JNIEnv* env, jobject obj,
jint iSecondaryID) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_activateHardwareAcceleration);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "activateHardwareAcceleration",
+
+"("
+"Z"
+"I"
+"I"
+"I"
+"I"
+")"
+"V",
+ &g_TestJni_activateHardwareAcceleration);
env->CallVoidMethod(obj,
g_TestJni_activateHardwareAcceleration, activated, iPid, iType,
@@ -1007,107 +1078,32 @@ static jmethodID g_TestJni_uncheckedCall = 0;
static void Java_TestJni_uncheckedCall(JNIEnv* env, jobject obj, jint iParam) {
/* Must call RegisterNativesImpl() */
DCHECK(g_TestJni_clazz);
- DCHECK(g_TestJni_uncheckedCall);
- env->CallVoidMethod(obj,
- g_TestJni_uncheckedCall, iParam);
-
-}
-
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kTestJniClassPath)));
- g_InfoBar_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kInfoBarClassPath)));
- g_TestJni_showConfirmInfoBar =
- base::android::GetMethodID(
- env, g_TestJni_clazz,
- "showConfirmInfoBar",
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_YES>(
+ env, g_TestJni_clazz,
+ "uncheckedCall",
"("
"I"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-"Landroid/graphics/Bitmap;"
")"
-"Lcom/google/android/apps/chrome/infobar/InfoBarContainer$NativeInfoBar;");
-
- g_TestJni_showAutoLoginInfoBar =
- base::android::GetMethodID(
- env, g_TestJni_clazz,
- "showAutoLoginInfoBar",
-
-"("
-"I"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-")"
-"Lcom/google/android/apps/chrome/infobar/InfoBarContainer$NativeInfoBar;");
-
- g_InfoBar_dismiss =
- base::android::GetMethodID(
- env, g_InfoBar_clazz,
- "dismiss",
-
-"("
-")"
-"V");
-
- g_TestJni_shouldShowAutoLogin =
- base::android::GetStaticMethodID(
- env, g_TestJni_clazz,
- "shouldShowAutoLogin",
-
-"("
-"Lorg/chromium/content/browser/ContentViewCore;"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-"Ljava/lang/String;"
-")"
-"Z");
-
- g_TestJni_openUrl =
- base::android::GetStaticMethodID(
- env, g_TestJni_clazz,
- "openUrl",
-
-"("
-"Ljava/lang/String;"
-")"
-"Ljava/io/InputStream;");
-
- g_TestJni_activateHardwareAcceleration =
- base::android::GetMethodID(
- env, g_TestJni_clazz,
- "activateHardwareAcceleration",
-
-"("
-"Z"
-"I"
-"I"
-"I"
-"I"
-")"
-"V");
-
- g_TestJni_uncheckedCall =
- base::android::GetMethodID(
- env, g_TestJni_clazz,
- "uncheckedCall",
+"V",
+ &g_TestJni_uncheckedCall);
-"("
-"I"
-")"
-"V");
+ env->CallVoidMethod(obj,
+ g_TestJni_uncheckedCall, iParam);
}
+// Step 3: RegisterNatives.
+
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kTestJniClassPath)));
+ g_InfoBar_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kInfoBarClassPath)));
return true;
}
@@ -1223,7 +1219,18 @@ static jint Java_InputStream_available(JNIEnv* env, jobject obj) __attribute__
static jint Java_InputStream_available(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_available);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "available",
+
+"("
+")"
+"I",
+ &g_InputStream_available);
+
jint ret =
env->CallIntMethod(obj,
g_InputStream_available);
@@ -1237,7 +1244,17 @@ static void Java_InputStream_close(JNIEnv* env, jobject obj) __attribute__
static void Java_InputStream_close(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_close);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "close",
+
+"("
+")"
+"V",
+ &g_InputStream_close);
env->CallVoidMethod(obj,
g_InputStream_close);
@@ -1251,7 +1268,18 @@ static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0)
static void Java_InputStream_mark(JNIEnv* env, jobject obj, jint p0) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_mark);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "mark",
+
+"("
+"I"
+")"
+"V",
+ &g_InputStream_mark);
env->CallVoidMethod(obj,
g_InputStream_mark, p0);
@@ -1265,7 +1293,18 @@ static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj)
static jboolean Java_InputStream_markSupported(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_markSupported);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "markSupported",
+
+"("
+")"
+"Z",
+ &g_InputStream_markSupported);
+
jboolean ret =
env->CallBooleanMethod(obj,
g_InputStream_markSupported);
@@ -1279,7 +1318,18 @@ static jint Java_InputStream_readI(JNIEnv* env, jobject obj) __attribute__
static jint Java_InputStream_readI(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_readI);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "read",
+
+"("
+")"
+"I",
+ &g_InputStream_readI);
+
jint ret =
env->CallIntMethod(obj,
g_InputStream_readI);
@@ -1293,7 +1343,19 @@ 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() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_readI_AB);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "read",
+
+"("
+"[B"
+")"
+"I",
+ &g_InputStream_readI_AB);
+
jint ret =
env->CallIntMethod(obj,
g_InputStream_readI_AB, p0);
@@ -1312,7 +1374,21 @@ static jint Java_InputStream_readI_AB_I_I(JNIEnv* env, jobject obj, jbyteArray
jint p2) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_readI_AB_I_I);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "read",
+
+"("
+"[B"
+"I"
+"I"
+")"
+"I",
+ &g_InputStream_readI_AB_I_I);
+
jint ret =
env->CallIntMethod(obj,
g_InputStream_readI_AB_I_I, p0, p1, p2);
@@ -1326,7 +1402,17 @@ static void Java_InputStream_reset(JNIEnv* env, jobject obj) __attribute__
static void Java_InputStream_reset(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_reset);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "reset",
+
+"("
+")"
+"V",
+ &g_InputStream_reset);
env->CallVoidMethod(obj,
g_InputStream_reset);
@@ -1340,7 +1426,19 @@ 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() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_skip);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "skip",
+
+"("
+"J"
+")"
+"J",
+ &g_InputStream_skip);
+
jlong ret =
env->CallLongMethod(obj,
g_InputStream_skip, p0);
@@ -1349,10 +1447,23 @@ static jlong Java_InputStream_skip(JNIEnv* env, jobject obj, jlong p0) {
}
static jmethodID g_InputStream_Constructor = 0;
+static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env)
+ __attribute__ ((unused));
static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) {
/* Must call RegisterNativesImpl() */
DCHECK(g_InputStream_clazz);
- DCHECK(g_InputStream_Constructor);
+
+ base::android::LazyMethodID::Get<
+ base::android::LazyMethodID::METHODTYPE_NORMAL,
+ base::android::LazyMethodID::EXCEPTIONCHECK_NO>(
+ env, g_InputStream_clazz,
+ "<init>",
+
+"("
+")"
+"V",
+ &g_InputStream_Constructor);
+
jobject ret =
env->NewObject(g_InputStream_clazz,
g_InputStream_Constructor);
@@ -1360,111 +1471,12 @@ static ScopedJavaLocalRef<jobject> Java_InputStream_Constructor(JNIEnv* env) {
return ScopedJavaLocalRef<jobject>(env, ret);
}
-// Step 3: GetMethodIDs and RegisterNatives.
-static void GetMethodIDsImpl(JNIEnv* env) {
- g_InputStream_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
- base::android::GetUnscopedClass(env, kInputStreamClassPath)));
- g_InputStream_available =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "available",
-
-"("
-")"
-"I");
-
- g_InputStream_close =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "close",
-
-"("
-")"
-"V");
-
- g_InputStream_mark =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "mark",
-
-"("
-"I"
-")"
-"V");
-
- g_InputStream_markSupported =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "markSupported",
-
-"("
-")"
-"Z");
-
- g_InputStream_readI =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "read",
-
-"("
-")"
-"I");
-
- g_InputStream_readI_AB =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "read",
-
-"("
-"[B"
-")"
-"I");
-
- g_InputStream_readI_AB_I_I =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "read",
-
-"("
-"[B"
-"I"
-"I"
-")"
-"I");
-
- g_InputStream_reset =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "reset",
-
-"("
-")"
-"V");
-
- g_InputStream_skip =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "skip",
-
-"("
-"J"
-")"
-"J");
-
- g_InputStream_Constructor =
- base::android::GetMethodID(
- env, g_InputStream_clazz,
- "<init>",
-
-"("
-")"
-"V");
-
-}
+// Step 3: RegisterNatives.
static bool RegisterNativesImpl(JNIEnv* env) {
- GetMethodIDsImpl(env);
+ g_InputStream_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kInputStreamClassPath)));
return true;
}
} // namespace JNI_InputStream
« base/android/jni_android_unittest.cc ('K') | « base/android/jni_generator/jni_generator.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698