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

Side by Side Diff: base/android/jni_generator/testEagerCalledByNativesOption.golden

Issue 472553002: Make class lookup lazy in jni_generator when using lazy method lookup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file is autogenerated by 5 // This file is autogenerated by
6 // base/android/jni_generator/jni_generator.py 6 // base/android/jni_generator/jni_generator.py
7 // For 7 // For
8 // org/chromium/example/jni_generator/Test 8 // org/chromium/example/jni_generator/Test
9 9
10 #ifndef org_chromium_example_jni_generator_Test_JNI 10 #ifndef org_chromium_example_jni_generator_Test_JNI
11 #define org_chromium_example_jni_generator_Test_JNI 11 #define org_chromium_example_jni_generator_Test_JNI
12 12
13 #include <jni.h> 13 #include <jni.h>
14 14
15 #include "base/android/jni_generator/jni_generator_helper.h" 15 #include "base/android/jni_generator/jni_generator_helper.h"
16 16
17 #include "base/android/jni_int_wrapper.h" 17 #include "base/android/jni_int_wrapper.h"
18 18
19 // Step 1: forward declarations. 19 // Step 1: forward declarations.
20 namespace { 20 namespace {
21 const char kTestClassPath[] = "org/chromium/example/jni_generator/Test"; 21 const char kTestClassPath[] = "org/chromium/example/jni_generator/Test";
22 #if __clang__
23 #pragma clang diagnostic push
24 #pragma clang diagnostic ignored "-Wunused-function"
25 #endif
22 // Leaking this jclass as we cannot use LazyInstance from some threads. 26 // Leaking this jclass as we cannot use LazyInstance from some threads.
23 jclass g_Test_clazz = NULL; 27 jclass g_Test_clazz = NULL;
28 jclass Test_clazz(JNIEnv*) { return g_Test_clazz; }
29 #if __clang__
30 #pragma clang diagnostic pop
31 #endif
24 jmethodID g_Test_testMethodWithParam = NULL; 32 jmethodID g_Test_testMethodWithParam = NULL;
25 jmethodID g_Test_testStaticMethodWithParam = NULL; 33 jmethodID g_Test_testStaticMethodWithParam = NULL;
26 jmethodID g_Test_testMethodWithNoParam = NULL; 34 jmethodID g_Test_testMethodWithNoParam = NULL;
27 jmethodID g_Test_testStaticMethodWithNoParam = NULL; 35 jmethodID g_Test_testStaticMethodWithNoParam = NULL;
28 } // namespace 36 } // namespace
29 37
30 // Step 2: method stubs. 38 // Step 2: method stubs.
31 static jint Method(JNIEnv* env, jobject jcaller, 39 static jint Method(JNIEnv* env, jobject jcaller,
32 jlong nativeTest, 40 jlong nativeTest,
33 jint arg1) { 41 jint arg1) {
34 Test* native = reinterpret_cast<Test*>(nativeTest); 42 Test* native = reinterpret_cast<Test*>(nativeTest);
35 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0); 43 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
36 return native->Method(env, jcaller, arg1); 44 return native->Method(env, jcaller, arg1);
37 } 45 }
38 46
39 namespace { 47 namespace {
40 48
41 static void testMethodWithParam(JNIEnv* env, jobject obj, JniIntWrapper iParam) 49 static void testMethodWithParam(JNIEnv* env, jobject obj, JniIntWrapper iParam)
42 { 50 {
43 env->CallVoidMethod(obj, 51 env->CallVoidMethod(obj,
44 g_Test_testMethodWithParam, as_jint(iParam)); 52 g_Test_testMethodWithParam, as_jint(iParam));
45 53
46 } 54 }
47 55
48 static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) { 56 static jint testStaticMethodWithParam(JNIEnv* env, JniIntWrapper iParam) {
49 jint ret = env->CallStaticIntMethod(g_Test_clazz, 57 jint ret = env->CallStaticIntMethod(Test_clazz(env),
50 g_Test_testStaticMethodWithParam, as_jint(iParam)); 58 g_Test_testStaticMethodWithParam, as_jint(iParam));
51 return ret; 59 return ret;
52 } 60 }
53 61
54 static jdouble testMethodWithNoParam(JNIEnv* env) { 62 static jdouble testMethodWithNoParam(JNIEnv* env) {
55 jdouble ret = env->CallStaticDoubleMethod(g_Test_clazz, 63 jdouble ret = env->CallStaticDoubleMethod(Test_clazz(env),
56 g_Test_testMethodWithNoParam); 64 g_Test_testMethodWithNoParam);
57 return ret; 65 return ret;
58 } 66 }
59 67
60 static base::android::ScopedJavaLocalRef<jstring> 68 static base::android::ScopedJavaLocalRef<jstring>
61 testStaticMethodWithNoParam(JNIEnv* env) { 69 testStaticMethodWithNoParam(JNIEnv* env) {
62 jstring ret = static_cast<jstring>(env->CallStaticObjectMethod(g_Test_clazz, 70 jstring ret =
71 static_cast<jstring>(env->CallStaticObjectMethod(Test_clazz(env),
63 g_Test_testStaticMethodWithNoParam)); 72 g_Test_testStaticMethodWithNoParam));
64 return base::android::ScopedJavaLocalRef<jstring>(env, ret); 73 return base::android::ScopedJavaLocalRef<jstring>(env, ret);
65 } 74 }
66 } // namespace 75 } // namespace
67 76
68 // Step 3: RegisterNatives. 77 // Step 3: RegisterNatives.
69 78
70 static const JNINativeMethod kMethodsTest[] = { 79 static const JNINativeMethod kMethodsTest[] = {
71 { "nativeMethod", 80 { "nativeMethod",
72 "(" 81 "("
73 "J" 82 "J"
74 "I" 83 "I"
75 ")" 84 ")"
76 "I", reinterpret_cast<void*>(Method) }, 85 "I", reinterpret_cast<void*>(Method) },
77 }; 86 };
78 87
79 static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) { 88 static bool RegisterNativesImpl(JNIEnv* env, jclass clazz) {
80 g_Test_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz)); 89 g_Test_clazz = static_cast<jclass>(env->NewWeakGlobalRef(clazz));
81 90
82 const int kMethodsTestSize = arraysize(kMethodsTest); 91 const int kMethodsTestSize = arraysize(kMethodsTest);
83 92
84 if (env->RegisterNatives(g_Test_clazz, 93 if (env->RegisterNatives(Test_clazz(env),
85 kMethodsTest, 94 kMethodsTest,
86 kMethodsTestSize) < 0) { 95 kMethodsTestSize) < 0) {
87 jni_generator::HandleRegistrationError( 96 jni_generator::HandleRegistrationError(
88 env, g_Test_clazz, __FILE__); 97 env, Test_clazz(env), __FILE__);
89 return false; 98 return false;
90 } 99 }
91 100
92 g_Test_testMethodWithParam = env->GetMethodID( 101 g_Test_testMethodWithParam = env->GetMethodID(
93 g_Test_clazz, 102 Test_clazz(env),
94 "testMethodWithParam", 103 "testMethodWithParam",
95 "(" 104 "("
96 "I" 105 "I"
97 ")" 106 ")"
98 "V"); 107 "V");
99 if (g_Test_testMethodWithParam == NULL) { 108 if (g_Test_testMethodWithParam == NULL) {
100 return false; 109 return false;
101 } 110 }
102 111
103 g_Test_testStaticMethodWithParam = env->GetStaticMethodID( 112 g_Test_testStaticMethodWithParam = env->GetStaticMethodID(
104 g_Test_clazz, 113 Test_clazz(env),
105 "testStaticMethodWithParam", 114 "testStaticMethodWithParam",
106 "(" 115 "("
107 "I" 116 "I"
108 ")" 117 ")"
109 "I"); 118 "I");
110 if (g_Test_testStaticMethodWithParam == NULL) { 119 if (g_Test_testStaticMethodWithParam == NULL) {
111 return false; 120 return false;
112 } 121 }
113 122
114 g_Test_testMethodWithNoParam = env->GetStaticMethodID( 123 g_Test_testMethodWithNoParam = env->GetStaticMethodID(
115 g_Test_clazz, 124 Test_clazz(env),
116 "testMethodWithNoParam", 125 "testMethodWithNoParam",
117 "(" 126 "("
118 ")" 127 ")"
119 "D"); 128 "D");
120 if (g_Test_testMethodWithNoParam == NULL) { 129 if (g_Test_testMethodWithNoParam == NULL) {
121 return false; 130 return false;
122 } 131 }
123 132
124 g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID( 133 g_Test_testStaticMethodWithNoParam = env->GetStaticMethodID(
125 g_Test_clazz, 134 Test_clazz(env),
126 "testStaticMethodWithNoParam", 135 "testStaticMethodWithNoParam",
127 "(" 136 "("
128 ")" 137 ")"
129 "Ljava/lang/String;"); 138 "Ljava/lang/String;");
130 if (g_Test_testStaticMethodWithNoParam == NULL) { 139 if (g_Test_testStaticMethodWithNoParam == NULL) {
131 return false; 140 return false;
132 } 141 }
133 142
134 return true; 143 return true;
135 } 144 }
136 145
137 extern "C" JNIEXPORT bool JNICALL 146 extern "C" JNIEXPORT bool JNICALL
138 Java_org_chromium_example_jni_generator_Test_nativeInitNativeClass(JNIEnv* env, 147 Java_org_chromium_example_jni_generator_Test_nativeInitNativeClass(JNIEnv* env,
139 jclass clazz) { 148 jclass clazz) {
140 return RegisterNativesImpl(env, clazz); 149 return RegisterNativesImpl(env, clazz);
141 } 150 }
142 151
143 #endif // org_chromium_example_jni_generator_Test_JNI 152 #endif // org_chromium_example_jni_generator_Test_JNI
OLDNEW
« no previous file with comments | « base/android/jni_generator/testConstantsFromJavaP.golden ('k') | base/android/jni_generator/testFromJavaP.golden » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698