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

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

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
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/TestJni 8 // org/chromium/TestJni
9 9
10 #ifndef org_chromium_TestJni_JNI 10 #ifndef org_chromium_TestJni_JNI
11 #define org_chromium_TestJni_JNI 11 #define org_chromium_TestJni_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 kTestJniClassPath[] = "org/chromium/TestJni"; 21 const char kTestJniClassPath[] = "org/chromium/TestJni";
22 const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass"; 22 const char kMyInnerClassClassPath[] = "org/chromium/TestJni$MyInnerClass";
23 // Leaking this jclass as we cannot use LazyInstance from some threads. 23 // Leaking this jclass as we cannot use LazyInstance from some threads.
24 jclass g_TestJni_clazz = NULL; 24 base::subtle::AtomicWord g_TestJni_clazz __attribute__((unused)) = 0;
25 #define TestJni_clazz(env) g_TestJni_clazz 25 #define TestJni_clazz(env) base::android::LazyGetClass(env, kTestJniClassPath, & g_TestJni_clazz)
26 // Leaking this jclass as we cannot use LazyInstance from some threads. 26 // Leaking this jclass as we cannot use LazyInstance from some threads.
27 jclass g_MyInnerClass_clazz = NULL; 27 base::subtle::AtomicWord g_MyInnerClass_clazz __attribute__((unused)) = 0;
28 #define MyInnerClass_clazz(env) g_MyInnerClass_clazz 28 #define MyInnerClass_clazz(env) base::android::LazyGetClass(env, kMyInnerClassCl assPath, &g_MyInnerClass_clazz)
29 29
30 } // namespace 30 } // namespace
31 31
32 // Step 2: method stubs. 32 // Step 2: method stubs.
33 33
34 static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller); 34 static jint Init(JNIEnv* env, const JavaParamRef<jobject>& jcaller);
35 35
36 static jint Java_org_chromium_TestJni_00024MyInnerClass_nativeInit(JNIEnv* env, 36 extern "C" __attribute__((visibility("default")))
37 jobject jcaller) { 37 jint Java_org_chromium_TestJni_00024MyInnerClass_nativeInit(JNIEnv* env, jobject
38 jcaller) {
38 return Init(env, JavaParamRef<jobject>(env, jcaller)); 39 return Init(env, JavaParamRef<jobject>(env, jcaller));
39 } 40 }
40 41
41 // Step 3: RegisterNatives. 42 // Step 3: RegisterNatives.
42 43
43 static const JNINativeMethod kMethodsMyInnerClass[] = { 44 static const JNINativeMethod kMethodsMyInnerClass[] = {
44 { "nativeInit", 45 { "nativeInit",
45 "(" 46 "("
46 ")" 47 ")"
47 "I", 48 "I",
48 reinterpret_cast<void*>(Java_org_chromium_TestJni_00024MyInnerClass_nativeIn it) 49 reinterpret_cast<void*>(Java_org_chromium_TestJni_00024MyInnerClass_nativeIn it)
49 }, 50 },
50 }; 51 };
51 52
52 static bool RegisterNativesImpl(JNIEnv* env) { 53 static bool RegisterNativesImpl(JNIEnv* env) {
53 54 if (base::android::IsManualJniRegistrationDisabled()) return true;
54 g_TestJni_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
55 base::android::GetClass(env, kTestJniClassPath).obj()));
56 g_MyInnerClass_clazz = reinterpret_cast<jclass>(env->NewGlobalRef(
57 base::android::GetClass(env, kMyInnerClassClassPath).obj()));
58 55
59 const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass); 56 const int kMethodsMyInnerClassSize = arraysize(kMethodsMyInnerClass);
60 57
61 if (env->RegisterNatives(MyInnerClass_clazz(env), 58 if (env->RegisterNatives(MyInnerClass_clazz(env),
62 kMethodsMyInnerClass, 59 kMethodsMyInnerClass,
63 kMethodsMyInnerClassSize) < 0) { 60 kMethodsMyInnerClassSize) < 0) {
64 jni_generator::HandleRegistrationError( 61 jni_generator::HandleRegistrationError(
65 env, MyInnerClass_clazz(env), __FILE__); 62 env, MyInnerClass_clazz(env), __FILE__);
66 return false; 63 return false;
67 } 64 }
68 65
69 return true; 66 return true;
70 } 67 }
71 68
72 #endif // org_chromium_TestJni_JNI 69 #endif // org_chromium_TestJni_JNI
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698