| OLD | NEW |
| 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 Loading... |
| 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 |
| OLD | NEW |