| 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[] = |
| 24 "org/chromium/example/jni_generator/SampleForTests$InnerClass"; |
| 23 const char kSampleForTestsClassPath[] = | 25 const char kSampleForTestsClassPath[] = |
| 24 "org/chromium/example/jni_generator/SampleForTests"; | 26 "org/chromium/example/jni_generator/SampleForTests"; |
| 25 const char kInnerStructBClassPath[] = | 27 const char kInnerStructBClassPath[] = |
| 26 "org/chromium/example/jni_generator/SampleForTests$InnerStructB"; | 28 "org/chromium/example/jni_generator/SampleForTests$InnerStructB"; |
| 27 // Leaking this jclass as we cannot use LazyInstance from some threads. | 29 // Leaking this jclass as we cannot use LazyInstance from some threads. |
| 28 jclass g_InnerStructA_clazz = NULL; | 30 jclass g_InnerStructA_clazz = NULL; |
| 29 #define InnerStructA_clazz(env) g_InnerStructA_clazz | 31 #define InnerStructA_clazz(env) g_InnerStructA_clazz |
| 30 // 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; |
| 34 #define InnerClass_clazz(env) g_InnerClass_clazz |
| 35 // Leaking this jclass as we cannot use LazyInstance from some threads. |
| 31 jclass g_SampleForTests_clazz = NULL; | 36 jclass g_SampleForTests_clazz = NULL; |
| 32 #define SampleForTests_clazz(env) g_SampleForTests_clazz | 37 #define SampleForTests_clazz(env) g_SampleForTests_clazz |
| 33 // Leaking this jclass as we cannot use LazyInstance from some threads. | 38 // Leaking this jclass as we cannot use LazyInstance from some threads. |
| 34 jclass g_InnerStructB_clazz = NULL; | 39 jclass g_InnerStructB_clazz = NULL; |
| 35 #define InnerStructB_clazz(env) g_InnerStructB_clazz | 40 #define InnerStructB_clazz(env) g_InnerStructB_clazz |
| 36 | 41 |
| 37 } // namespace | 42 } // namespace |
| 38 | 43 |
| 39 namespace base { | 44 namespace base { |
| 40 namespace android { | 45 namespace android { |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 Java_org_chromium_example_jni_1generator_SampleForTests_nativeReturnAString(
JNIEnv* | 153 Java_org_chromium_example_jni_1generator_SampleForTests_nativeReturnAString(
JNIEnv* |
| 149 env, | 154 env, |
| 150 jobject jcaller, | 155 jobject jcaller, |
| 151 jlong nativeCPPClass) { | 156 jlong nativeCPPClass) { |
| 152 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); | 157 CPPClass* native = reinterpret_cast<CPPClass*>(nativeCPPClass); |
| 153 CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", NULL); | 158 CHECK_NATIVE_PTR(env, jcaller, native, "ReturnAString", NULL); |
| 154 return native->ReturnAString(env, JavaParamRef<jobject>(env, | 159 return native->ReturnAString(env, JavaParamRef<jobject>(env, |
| 155 jcaller)).Release(); | 160 jcaller)).Release(); |
| 156 } | 161 } |
| 157 | 162 |
| 163 static jint GetInnerIntFunction(JNIEnv* env, const JavaParamRef<jclass>& |
| 164 jcaller); |
| 165 |
| 166 static jint |
| 167 Java_org_chromium_example_jni_1generator_SampleForTests_00024InnerClass_nati
veGetInnerIntFunction(JNIEnv* |
| 168 env, jclass jcaller) { |
| 169 return GetInnerIntFunction(env, JavaParamRef<jclass>(env, jcaller)); |
| 170 } |
| 171 |
| 158 static base::subtle::AtomicWord g_SampleForTests_javaMethod = 0; | 172 static base::subtle::AtomicWord g_SampleForTests_javaMethod = 0; |
| 159 static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, | 173 static jint Java_SampleForTests_javaMethod(JNIEnv* env, jobject obj, |
| 160 JniIntWrapper foo, | 174 JniIntWrapper foo, |
| 161 JniIntWrapper bar) { | 175 JniIntWrapper bar) { |
| 162 /* Must call RegisterNativesImpl() */ | 176 /* Must call RegisterNativesImpl() */ |
| 163 CHECK_CLAZZ(env, obj, | 177 CHECK_CLAZZ(env, obj, |
| 164 SampleForTests_clazz(env), 0); | 178 SampleForTests_clazz(env), 0); |
| 165 jmethodID method_id = | 179 jmethodID method_id = |
| 166 base::android::MethodID::LazyGet< | 180 base::android::MethodID::LazyGet< |
| 167 base::android::MethodID::TYPE_INSTANCE>( | 181 base::android::MethodID::TYPE_INSTANCE>( |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 368 | 382 |
| 369 jstring ret = | 383 jstring ret = |
| 370 static_cast<jstring>(env->CallObjectMethod(obj, | 384 static_cast<jstring>(env->CallObjectMethod(obj, |
| 371 method_id)); | 385 method_id)); |
| 372 jni_generator::CheckException(env); | 386 jni_generator::CheckException(env); |
| 373 return ScopedJavaLocalRef<jstring>(env, ret); | 387 return ScopedJavaLocalRef<jstring>(env, ret); |
| 374 } | 388 } |
| 375 | 389 |
| 376 // Step 3: RegisterNatives. | 390 // Step 3: RegisterNatives. |
| 377 | 391 |
| 392 static const JNINativeMethod kMethodsInnerClass[] = { |
| 393 { "nativeGetInnerIntFunction", |
| 394 "(" |
| 395 ")" |
| 396 "I", |
| 397 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe
sts_00024InnerClass_nativeGetInnerIntFunction) |
| 398 }, |
| 399 }; |
| 400 |
| 378 static const JNINativeMethod kMethodsSampleForTests[] = { | 401 static const JNINativeMethod kMethodsSampleForTests[] = { |
| 379 { "nativeInit", | 402 { "nativeInit", |
| 380 "(" | 403 "(" |
| 381 "Ljava/lang/String;" | 404 "Ljava/lang/String;" |
| 382 ")" | 405 ")" |
| 383 "J", | 406 "J", |
| 384 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe
sts_nativeInit) | 407 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe
sts_nativeInit) |
| 385 }, | 408 }, |
| 386 { "nativeDestroy", | 409 { "nativeDestroy", |
| 387 "(" | 410 "(" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 450 ")" | 473 ")" |
| 451 "Ljava/lang/String;", | 474 "Ljava/lang/String;", |
| 452 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe
sts_nativeReturnAString) | 475 reinterpret_cast<void*>(Java_org_chromium_example_jni_1generator_SampleForTe
sts_nativeReturnAString) |
| 453 }, | 476 }, |
| 454 }; | 477 }; |
| 455 | 478 |
| 456 static bool RegisterNativesImpl(JNIEnv* env) { | 479 static bool RegisterNativesImpl(JNIEnv* env) { |
| 457 | 480 |
| 458 g_InnerStructA_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( | 481 g_InnerStructA_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| 459 base::android::GetClass(env, kInnerStructAClassPath).obj())); | 482 base::android::GetClass(env, kInnerStructAClassPath).obj())); |
| 483 g_InnerClass_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| 484 base::android::GetClass(env, kInnerClassClassPath).obj())); |
| 460 g_SampleForTests_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( | 485 g_SampleForTests_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| 461 base::android::GetClass(env, kSampleForTestsClassPath).obj())); | 486 base::android::GetClass(env, kSampleForTestsClassPath).obj())); |
| 462 g_InnerStructB_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( | 487 g_InnerStructB_clazz = reinterpret_cast<jclass>(env->NewGlobalRef( |
| 463 base::android::GetClass(env, kInnerStructBClassPath).obj())); | 488 base::android::GetClass(env, kInnerStructBClassPath).obj())); |
| 464 | 489 |
| 490 const int kMethodsInnerClassSize = arraysize(kMethodsInnerClass); |
| 491 |
| 492 if (env->RegisterNatives(InnerClass_clazz(env), |
| 493 kMethodsInnerClass, |
| 494 kMethodsInnerClassSize) < 0) { |
| 495 jni_generator::HandleRegistrationError( |
| 496 env, InnerClass_clazz(env), __FILE__); |
| 497 return false; |
| 498 } |
| 499 |
| 465 const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests); | 500 const int kMethodsSampleForTestsSize = arraysize(kMethodsSampleForTests); |
| 466 | 501 |
| 467 if (env->RegisterNatives(SampleForTests_clazz(env), | 502 if (env->RegisterNatives(SampleForTests_clazz(env), |
| 468 kMethodsSampleForTests, | 503 kMethodsSampleForTests, |
| 469 kMethodsSampleForTestsSize) < 0) { | 504 kMethodsSampleForTestsSize) < 0) { |
| 470 jni_generator::HandleRegistrationError( | 505 jni_generator::HandleRegistrationError( |
| 471 env, SampleForTests_clazz(env), __FILE__); | 506 env, SampleForTests_clazz(env), __FILE__); |
| 472 return false; | 507 return false; |
| 473 } | 508 } |
| 474 | 509 |
| 475 return true; | 510 return true; |
| 476 } | 511 } |
| 477 | 512 |
| 478 } // namespace android | 513 } // namespace android |
| 479 } // namespace base | 514 } // namespace base |
| 480 | 515 |
| 481 #endif // org_chromium_example_jni_generator_SampleForTests_JNI | 516 #endif // org_chromium_example_jni_generator_SampleForTests_JNI |
| OLD | NEW |