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

Unified Diff: base/android/jni_generator/golden_sample_for_tests_jni.h

Issue 9466024: Fixes JNI Bindings & startup perf. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove static for anon namespaced strings Created 8 years, 10 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
« no previous file with comments | « no previous file | base/android/jni_generator/jni_generator.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/android/jni_generator/golden_sample_for_tests_jni.h
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 10bc63358bb1f1d8fddca6d1c7ba74aa64e3e7e6..336bdce7acf9e4db591d9a889cac0893c18032be 100644
--- a/base/android/jni_generator/golden_sample_for_tests_jni.h
+++ b/base/android/jni_generator/golden_sample_for_tests_jni.h
@@ -22,18 +22,14 @@ using base::android::ScopedJavaLocalRef;
// Step 1: forward declarations.
namespace {
-const char* const kInnerClassClassPath =
+const char kInnerClassClassPath[] =
"org/chromium/example/jni_generator/SampleForTests$InnerClass";
-const char* const kSampleForTestsClassPath =
+const char kSampleForTestsClassPath[] =
"org/chromium/example/jni_generator/SampleForTests";
-// Leaking this JavaRef as we cannot use LazyInstance from some threads.
-base::android::ScopedJavaGlobalRef<jclass>&
- g_InnerClass_clazz =
- *(new base::android::ScopedJavaGlobalRef<jclass>());
-// Leaking this JavaRef as we cannot use LazyInstance from some threads.
-base::android::ScopedJavaGlobalRef<jclass>&
- g_SampleForTests_clazz =
- *(new base::android::ScopedJavaGlobalRef<jclass>());
+// Leaking this jclass as we cannot use LazyInstance from some threads.
+jclass g_InnerClass_clazz = NULL;
+// Leaking this jclass as we cannot use LazyInstance from some threads.
+jclass g_SampleForTests_clazz = NULL;
} // namespace
static jint Init(JNIEnv* env, jobject obj);
@@ -90,7 +86,7 @@ static jmethodID g_SampleForTests_javaMethod = 0;
static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, jint foo,
jint bar) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_SampleForTests_clazz.is_null());
+ DCHECK(g_SampleForTests_clazz);
DCHECK(g_SampleForTests_javaMethod);
jint ret =
env->CallIntMethod(obj,
@@ -102,10 +98,10 @@ static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, jint foo,
static jmethodID g_SampleForTests_staticJavaMethod = 0;
static jboolean Java_SampleForTests_staticJavaMethod(JNIEnv* env) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_SampleForTests_clazz.is_null());
+ DCHECK(g_SampleForTests_clazz);
DCHECK(g_SampleForTests_staticJavaMethod);
jboolean ret =
- env->CallStaticBooleanMethod(g_SampleForTests_clazz.obj(),
+ env->CallStaticBooleanMethod(g_SampleForTests_clazz,
g_SampleForTests_staticJavaMethod);
base::android::CheckException(env);
return ret;
@@ -115,7 +111,7 @@ static jmethodID g_SampleForTests_packagePrivateJavaMethod = 0;
static void Java_SampleForTests_packagePrivateJavaMethod(JNIEnv* env, jobject
obj) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_SampleForTests_clazz.is_null());
+ DCHECK(g_SampleForTests_clazz);
DCHECK(g_SampleForTests_packagePrivateJavaMethod);
env->CallVoidMethod(obj,
@@ -128,7 +124,7 @@ static jmethodID g_SampleForTests_methodThatThrowsException = 0;
static void Java_SampleForTests_methodThatThrowsException(JNIEnv* env, jobject
obj) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_SampleForTests_clazz.is_null());
+ DCHECK(g_SampleForTests_clazz);
DCHECK(g_SampleForTests_methodThatThrowsException);
env->CallVoidMethod(obj,
@@ -140,7 +136,7 @@ static void Java_SampleForTests_methodThatThrowsException(JNIEnv* env, jobject
static jmethodID g_InnerClass_JavaInnerMethod = 0;
static jfloat Java_InnerClass_JavaInnerMethod(JNIEnv* env, jobject obj) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_InnerClass_clazz.is_null());
+ DCHECK(g_InnerClass_clazz);
DCHECK(g_InnerClass_JavaInnerMethod);
jfloat ret =
env->CallFloatMethod(obj,
@@ -152,10 +148,10 @@ static jfloat Java_InnerClass_JavaInnerMethod(JNIEnv* env, jobject obj) {
static jmethodID g_InnerClass_javaInnerFunction = 0;
static void Java_InnerClass_javaInnerFunction(JNIEnv* env) {
/* Must call RegisterNativesImpl() */
- DCHECK(!g_InnerClass_clazz.is_null());
+ DCHECK(g_InnerClass_clazz);
DCHECK(g_InnerClass_javaInnerFunction);
- env->CallStaticVoidMethod(g_InnerClass_clazz.obj(),
+ env->CallStaticVoidMethod(g_InnerClass_clazz,
g_InnerClass_javaInnerFunction);
base::android::CheckException(env);
@@ -165,13 +161,14 @@ static void Java_InnerClass_javaInnerFunction(JNIEnv* env) {
static void GetMethodIDsImpl(JNIEnv* env) {
- g_InnerClass_clazz.Reset(
- base::android::GetClass(env, kInnerClassClassPath));
- g_SampleForTests_clazz.Reset(
- base::android::GetClass(env, kSampleForTestsClassPath));
- g_SampleForTests_javaMethod = base::android::GetMethodID(
- env, g_SampleForTests_clazz,
- "javaMethod",
+ g_InnerClass_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kInnerClassClassPath)));
+ g_SampleForTests_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
+ base::android::GetUnscopedClass(env, kSampleForTestsClassPath)));
+ g_SampleForTests_javaMethod =
+ base::android::GetMethodID(
+ env, g_SampleForTests_clazz,
+ "javaMethod",
"("
"I"
@@ -179,41 +176,46 @@ static void GetMethodIDsImpl(JNIEnv* env) {
")"
"I");
- g_SampleForTests_staticJavaMethod = base::android::GetStaticMethodID(
- env, g_SampleForTests_clazz,
- "staticJavaMethod",
+ g_SampleForTests_staticJavaMethod =
+ base::android::GetStaticMethodID(
+ env, g_SampleForTests_clazz,
+ "staticJavaMethod",
"("
")"
"Z");
- g_SampleForTests_packagePrivateJavaMethod = base::android::GetMethodID(
- env, g_SampleForTests_clazz,
- "packagePrivateJavaMethod",
+ g_SampleForTests_packagePrivateJavaMethod =
+ base::android::GetMethodID(
+ env, g_SampleForTests_clazz,
+ "packagePrivateJavaMethod",
"("
")"
"V");
- g_SampleForTests_methodThatThrowsException = base::android::GetMethodID(
- env, g_SampleForTests_clazz,
- "methodThatThrowsException",
+ g_SampleForTests_methodThatThrowsException =
+ base::android::GetMethodID(
+ env, g_SampleForTests_clazz,
+ "methodThatThrowsException",
"("
")"
"V");
- g_InnerClass_JavaInnerMethod = base::android::GetMethodID(
- env, g_InnerClass_clazz,
- "JavaInnerMethod",
+ g_InnerClass_JavaInnerMethod =
+ base::android::GetMethodID(
+ env, g_InnerClass_clazz,
+ "JavaInnerMethod",
"("
")"
"F");
- g_InnerClass_javaInnerFunction = base::android::GetStaticMethodID(
- env, g_InnerClass_clazz,
- "javaInnerFunction",
+ g_InnerClass_javaInnerFunction =
+ base::android::GetStaticMethodID(
+ env, g_InnerClass_clazz,
+ "javaInnerFunction",
"("
")"
@@ -237,7 +239,7 @@ static bool RegisterNativesImpl(JNIEnv* env) {
};
const int kMethodsInnerClassSize = arraysize(kMethodsInnerClass);
- if (env->RegisterNatives(g_InnerClass_clazz.obj(),
+ if (env->RegisterNatives(g_InnerClass_clazz,
kMethodsInnerClass,
kMethodsInnerClassSize) < 0) {
LOG(ERROR) << "RegisterNatives failed in " << __FILE__;
@@ -284,7 +286,7 @@ static bool RegisterNativesImpl(JNIEnv* env) {
};
const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests);
- if (env->RegisterNatives(g_SampleForTests_clazz.obj(),
+ if (env->RegisterNatives(g_SampleForTests_clazz,
kMethodsSampleForTests,
kMethodsSampleForTestsSize) < 0) {
LOG(ERROR) << "RegisterNatives failed in " << __FILE__;
« no previous file with comments | « no previous file | base/android/jni_generator/jni_generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698