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

Side by Side Diff: base/android/jni_generator/golden_sample_for_tests_jni.h

Issue 2162923002: jni_generator: Always generate native exports. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « no previous file | base/android/jni_generator/jni_generator.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 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/SampleForTests 8 // org/chromium/example/jni_generator/SampleForTests
9 9
10 #ifndef org_chromium_example_jni_generator_SampleForTests_JNI 10 #ifndef org_chromium_example_jni_generator_SampleForTests_JNI
11 #define org_chromium_example_jni_generator_SampleForTests_JNI 11 #define org_chromium_example_jni_generator_SampleForTests_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 kInnerStructAClassPath[] = 21 const char kInnerStructAClassPath[] =
22 "org/chromium/example/jni_generator/SampleForTests$InnerStructA"; 22 "org/chromium/example/jni_generator/SampleForTests$InnerStructA";
23 const char kInnerClassClassPath[] = 23 const char kInnerClassClassPath[] =
24 "org/chromium/example/jni_generator/SampleForTests$InnerClass"; 24 "org/chromium/example/jni_generator/SampleForTests$InnerClass";
25 const char kSampleForTestsClassPath[] = 25 const char kSampleForTestsClassPath[] =
26 "org/chromium/example/jni_generator/SampleForTests"; 26 "org/chromium/example/jni_generator/SampleForTests";
27 const char kInnerStructBClassPath[] = 27 const char kInnerStructBClassPath[] =
28 "org/chromium/example/jni_generator/SampleForTests$InnerStructB"; 28 "org/chromium/example/jni_generator/SampleForTests$InnerStructB";
29 // Leaking this jclass as we cannot use LazyInstance from some threads. 29 // Leaking this jclass as we cannot use LazyInstance from some threads.
30 jclass g_InnerStructA_clazz = NULL; 30 base::subtle::AtomicWord g_InnerStructA_clazz __attribute__((unused)) = 0;
31 #define InnerStructA_clazz(env) g_InnerStructA_clazz 31 #define InnerStructA_clazz(env) base::android::LazyGetClass(env, kInnerStructACl assPath, &g_InnerStructA_clazz)
32 // Leaking this jclass as we cannot use LazyInstance from some threads. 32 // Leaking this jclass as we cannot use LazyInstance from some threads.
33 jclass g_InnerClass_clazz = NULL; 33 base::subtle::AtomicWord g_InnerClass_clazz __attribute__((unused)) = 0;
34 #define InnerClass_clazz(env) g_InnerClass_clazz 34 #define InnerClass_clazz(env) base::android::LazyGetClass(env, kInnerClassClassP ath, &g_InnerClass_clazz)
35 // Leaking this jclass as we cannot use LazyInstance from some threads. 35 // Leaking this jclass as we cannot use LazyInstance from some threads.
36 jclass g_SampleForTests_clazz = NULL; 36 base::subtle::AtomicWord g_SampleForTests_clazz __attribute__((unused)) = 0;
37 #define SampleForTests_clazz(env) g_SampleForTests_clazz 37 #define SampleForTests_clazz(env) base::android::LazyGetClass(env, kSampleForTes tsClassPath, &g_SampleForTests_clazz)
38 // Leaking this jclass as we cannot use LazyInstance from some threads. 38 // Leaking this jclass as we cannot use LazyInstance from some threads.
39 jclass g_InnerStructB_clazz = NULL; 39 base::subtle::AtomicWord g_InnerStructB_clazz __attribute__((unused)) = 0;
40 #define InnerStructB_clazz(env) g_InnerStructB_clazz 40 #define InnerStructB_clazz(env) base::android::LazyGetClass(env, kInnerStructBCl assPath, &g_InnerStructB_clazz)
41 41
42 } // namespace 42 } // namespace
43 43
44 namespace base { 44 namespace base {
45 namespace android { 45 namespace android {
46 46
47 // Step 2: method stubs. 47 // Step 2: method stubs.
48 48
49 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller, 49 static jlong Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller,
50 const JavaParamRef<jstring>& param); 50 const JavaParamRef<jstring>& param);
51 51
52 static jlong 52 extern "C" __attribute__((visibility("default")))
53 Java_org_chromium_example_jni_1generator_SampleForTests_nativeInit(JNIEnv* 53 jlong Java_org_chromium_example_jni_1generator_SampleForTests_nativeInit(JNIEnv*
54 env, jobject jcaller, 54 env, jobject jcaller,
55 jstring param) { 55 jstring param) {
56 return Init(env, JavaParamRef<jobject>(env, jcaller), 56 return Init(env, JavaParamRef<jobject>(env, jcaller),
57 JavaParamRef<jstring>(env, param)); 57 JavaParamRef<jstring>(env, param));
58 } 58 }
59 59
60 static void 60 extern "C" __attribute__((visibility("default")))
61 void
61 Java_org_chromium_example_jni_1generator_SampleForTests_nativeDestroy(JNIEnv * 62 Java_org_chromium_example_jni_1generator_SampleForTests_nativeDestroy(JNIEnv *
62 env, 63 env,
63 jobject jcaller, 64 jobject jcaller,
64 jlong nativeCPPClass) { 65 jlong nativeCPPClass) {
65 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 66 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
66 CHECK_NATIVE_PTR(env, jcaller, native, "Destroy"); 67 CHECK_NATIVE_PTR(env, jcaller, native, "Destroy");
67 return native->Destroy(env, JavaParamRef<jobject>(env, jcaller)); 68 return native->Destroy(env, JavaParamRef<jobject>(env, jcaller));
68 } 69 }
69 70
70 static jdouble GetDoubleFunction(JNIEnv* env, const JavaParamRef<jobject>& 71 static jdouble GetDoubleFunction(JNIEnv* env, const JavaParamRef<jobject>&
71 jcaller); 72 jcaller);
72 73
73 static jdouble 74 extern "C" __attribute__((visibility("default")))
75 jdouble
74 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetDoubleFunct ion(JNIEnv* 76 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetDoubleFunct ion(JNIEnv*
75 env, jobject jcaller) { 77 env, jobject jcaller) {
76 return GetDoubleFunction(env, JavaParamRef<jobject>(env, jcaller)); 78 return GetDoubleFunction(env, JavaParamRef<jobject>(env, jcaller));
77 } 79 }
78 80
79 static jfloat GetFloatFunction(JNIEnv* env, const JavaParamRef<jclass>& 81 static jfloat GetFloatFunction(JNIEnv* env, const JavaParamRef<jclass>&
80 jcaller); 82 jcaller);
81 83
82 static jfloat 84 extern "C" __attribute__((visibility("default")))
85 jfloat
83 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetFloatFuncti on(JNIEnv* 86 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetFloatFuncti on(JNIEnv*
84 env, jclass jcaller) { 87 env, jclass jcaller) {
85 return GetFloatFunction(env, JavaParamRef<jclass>(env, jcaller)); 88 return GetFloatFunction(env, JavaParamRef<jclass>(env, jcaller));
86 } 89 }
87 90
88 static void SetNonPODDatatype(JNIEnv* env, const JavaParamRef<jobject>& jcaller, 91 static void SetNonPODDatatype(JNIEnv* env, const JavaParamRef<jobject>& jcaller,
89 const JavaParamRef<jobject>& rect); 92 const JavaParamRef<jobject>& rect);
90 93
91 static void 94 extern "C" __attribute__((visibility("default")))
95 void
92 Java_org_chromium_example_jni_1generator_SampleForTests_nativeSetNonPODDatat ype(JNIEnv* 96 Java_org_chromium_example_jni_1generator_SampleForTests_nativeSetNonPODDatat ype(JNIEnv*
93 env, jobject jcaller, 97 env, jobject jcaller,
94 jobject rect) { 98 jobject rect) {
95 return SetNonPODDatatype(env, JavaParamRef<jobject>(env, jcaller), 99 return SetNonPODDatatype(env, JavaParamRef<jobject>(env, jcaller),
96 JavaParamRef<jobject>(env, rect)); 100 JavaParamRef<jobject>(env, rect));
97 } 101 }
98 102
99 static ScopedJavaLocalRef<jobject> GetNonPODDatatype(JNIEnv* env, const 103 static ScopedJavaLocalRef<jobject> GetNonPODDatatype(JNIEnv* env, const
100 JavaParamRef<jobject>& jcaller); 104 JavaParamRef<jobject>& jcaller);
101 105
102 static jobject 106 extern "C" __attribute__((visibility("default")))
107 jobject
103 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetNonPODDatat ype(JNIEnv* 108 Java_org_chromium_example_jni_1generator_SampleForTests_nativeGetNonPODDatat ype(JNIEnv*
104 env, jobject jcaller) { 109 env, jobject jcaller) {
105 return GetNonPODDatatype(env, JavaParamRef<jobject>(env, jcaller)).Release(); 110 return GetNonPODDatatype(env, JavaParamRef<jobject>(env, jcaller)).Release();
106 } 111 }
107 112
108 static jint 113 extern "C" __attribute__((visibility("default")))
114 jint
109 Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethod(JNIEnv* 115 Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethod(JNIEnv*
110 env, 116 env,
111 jobject jcaller, 117 jobject jcaller,
112 jlong nativeCPPClass) { 118 jlong nativeCPPClass) {
113 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 119 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
114 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0); 120 CHECK_NATIVE_PTR(env, jcaller, native, "Method", 0);
115 return native->Method(env, JavaParamRef<jobject>(env, jcaller)); 121 return native->Method(env, JavaParamRef<jobject>(env, jcaller));
116 } 122 }
117 123
118 static jdouble 124 extern "C" __attribute__((visibility("default")))
125 jdouble
119 Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethodOtherP0( JNIEnv* 126 Java_org_chromium_example_jni_1generator_SampleForTests_nativeMethodOtherP0( JNIEnv*
120 env, 127 env,
121 jobject jcaller, 128 jobject jcaller,
122 jlong nativePtr) { 129 jlong nativePtr) {
123 CPPClass::InnerClass* native = 130 CPPClass::InnerClass* native =
124 reinterpret_cast<CPPClass::InnerClass*>(nativePtr); 131 reinterpret_cast<CPPClass::InnerClass*>(nativePtr);
125 CHECK_NATIVE_PTR(env, jcaller, native, "MethodOtherP0", 0); 132 CHECK_NATIVE_PTR(env, jcaller, native, "MethodOtherP0", 0);
126 return native->MethodOtherP0(env, JavaParamRef<jobject>(env, jcaller)); 133 return native->MethodOtherP0(env, JavaParamRef<jobject>(env, jcaller));
127 } 134 }
128 135
129 static void 136 extern "C" __attribute__((visibility("default")))
137 void
130 Java_org_chromium_example_jni_1generator_SampleForTests_nativeAddStructB(JNI Env* 138 Java_org_chromium_example_jni_1generator_SampleForTests_nativeAddStructB(JNI Env*
131 env, 139 env,
132 jobject jcaller, 140 jobject jcaller,
133 jlong nativeCPPClass, 141 jlong nativeCPPClass,
134 jobject b) { 142 jobject b) {
135 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 143 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
136 CHECK_NATIVE_PTR(env, jcaller, native, "AddStructB"); 144 CHECK_NATIVE_PTR(env, jcaller, native, "AddStructB");
137 return native->AddStructB(env, JavaParamRef<jobject>(env, jcaller), 145 return native->AddStructB(env, JavaParamRef<jobject>(env, jcaller),
138 JavaParamRef<jobject>(env, b)); 146 JavaParamRef<jobject>(env, b));
139 } 147 }
140 148
141 static void 149 extern "C" __attribute__((visibility("default")))
150 void
142 Java_org_chromium_example_jni_1generator_SampleForTests_nativeIterateAndDoSo methingWithStructB(JNIEnv* 151 Java_org_chromium_example_jni_1generator_SampleForTests_nativeIterateAndDoSo methingWithStructB(JNIEnv*
143 env, 152 env,
144 jobject jcaller, 153 jobject jcaller,
145 jlong nativeCPPClass) { 154 jlong nativeCPPClass) {
146 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 155 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
147 CHECK_NATIVE_PTR(env, jcaller, native, "IterateAndDoSomethingWithStructB"); 156 CHECK_NATIVE_PTR(env, jcaller, native, "IterateAndDoSomethingWithStructB");
148 return native->IterateAndDoSomethingWithStructB(env, 157 return native->IterateAndDoSomethingWithStructB(env,
149 JavaParamRef<jobject>(env, jcaller)); 158 JavaParamRef<jobject>(env, jcaller));
150 } 159 }
151 160
152 static jstring 161 extern "C" __attribute__((visibility("default")))
162 jstring
153 Java_org_chromium_example_jni_1generator_SampleForTests_nativeReturnAString( JNIEnv* 163 Java_org_chromium_example_jni_1generator_SampleForTests_nativeReturnAString( JNIEnv*
154 env, 164 env,
155 jobject jcaller, 165 jobject jcaller,
156 jlong nativeCPPClass) { 166 jlong nativeCPPClass) {
157 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); 167 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass);
158 CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", NULL); 168 CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", NULL);
159 return native->ReturnAString(env, JavaParamRef<jobject>(env, 169 return native->ReturnAString(env, JavaParamRef<jobject>(env,
160 jcaller)).Release(); 170 jcaller)).Release();
161 } 171 }
162 172
163 static jint GetInnerIntFunction(JNIEnv* env, const JavaParamRef<jclass>& 173 static jint GetInnerIntFunction(JNIEnv* env, const JavaParamRef<jclass>&
164 jcaller); 174 jcaller);
165 175
166 static jint 176 extern "C" __attribute__((visibility("default")))
177 jint
167 Java_org_chromium_example_jni_1generator_SampleForTests_00024InnerClass_nati veGetInnerIntFunction(JNIEnv* 178 Java_org_chromium_example_jni_1generator_SampleForTests_00024InnerClass_nati veGetInnerIntFunction(JNIEnv*
168 env, jclass jcaller) { 179 env, jclass jcaller) {
169 return GetInnerIntFunction(env, JavaParamRef<jclass>(env, jcaller)); 180 return GetInnerIntFunction(env, JavaParamRef<jclass>(env, jcaller));
170 } 181 }
171 182
172 static base::subtle::AtomicWord g_SampleForTests_javaMethod = 0; 183 static base::subtle::AtomicWord g_SampleForTests_javaMethod = 0;
173 static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, 184 static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj,
174 JniIntWrapper foo, 185 JniIntWrapper foo,
175 JniIntWrapper bar) { 186 JniIntWrapper bar) {
176 /* Must call RegisterNativesImpl() */ 187 /* Must call RegisterNativesImpl() */
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 { "nativeReturnAString", 481 { "nativeReturnAString",
471 "(" 482 "("
472 "J" 483 "J"
473 ")" 484 ")"
474 "Ljava/lang/String;", 485 "Ljava/lang/String;",
475 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe sts_nativeReturnAString) 486 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe sts_nativeReturnAString)
476 }, 487 },
477 }; 488 };
478 489
479 static bool RegisterNativesImpl(JNIEnv* env) { 490 static bool RegisterNativesImpl(JNIEnv* env) {
480 491 if (base::android::IsManualJniRegistrationDisabled()) return true;
481 g_InnerStructA_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
482 base::android::GetClass(env, kInnerStructAClassPath).obj()));
483 g_InnerClass_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
484 base::android::GetClass(env, kInnerClassClassPath).obj()));
485 g_SampleForTests_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
486 base::android::GetClass(env, kSampleForTestsClassPath).obj()));
487 g_InnerStructB_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
488 base::android::GetClass(env, kInnerStructBClassPath).obj()));
489 492
490 const int kMethodsInnerClassSize = arraysize(kMethodsInnerClass); 493 const int kMethodsInnerClassSize = arraysize(kMethodsInnerClass);
491 494
492 if (env->RegisterNatives(InnerClass_clazz(env), 495 if (env->RegisterNatives(InnerClass_clazz(env),
493 kMethodsInnerClass, 496 kMethodsInnerClass,
494 kMethodsInnerClassSize) < 0) { 497 kMethodsInnerClassSize) < 0) {
495 jni_generator::HandleRegistrationError( 498 jni_generator::HandleRegistrationError(
496 env, InnerClass_clazz(env), __FILE__); 499 env, InnerClass_clazz(env), __FILE__);
497 return false; 500 return false;
498 } 501 }
499 502
500 const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests); 503 const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests);
501 504
502 if (env->RegisterNatives(SampleForTests_clazz(env), 505 if (env->RegisterNatives(SampleForTests_clazz(env),
503 kMethodsSampleForTests, 506 kMethodsSampleForTests,
504 kMethodsSampleForTestsSize) < 0) { 507 kMethodsSampleForTestsSize) < 0) {
505 jni_generator::HandleRegistrationError( 508 jni_generator::HandleRegistrationError(
506 env, SampleForTests_clazz(env), __FILE__); 509 env, SampleForTests_clazz(env), __FILE__);
507 return false; 510 return false;
508 } 511 }
509 512
510 return true; 513 return true;
511 } 514 }
512 515
513 } // namespace android 516 } // namespace android
514 } // namespace base 517 } // namespace base
515 518
516 #endif // org_chromium_example_jni_generator_SampleForTests_JNI 519 #endif // org_chromium_example_jni_generator_SampleForTests_JNI
OLDNEW
« 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