1 // This file was generated by
2 // //third_party/jni_zero/jni_zero.py
3 // For
4 // java.lang.Runnable
5
6 #ifndef java_lang_Runnable_JNI
7 #define java_lang_Runnable_JNI
8
9 #include <jni.h>
10
11 #include "third_party/jni_zero/jni_export.h"
12 #include "third_party/jni_zero/jni_zero_internal.h"
13 // Class Accessors.
14 #ifndef java_lang_Runnable_clazz_defined
15 #define java_lang_Runnable_clazz_defined
java_lang_Runnable_clazz(JNIEnv * env)16 inline jclass java_lang_Runnable_clazz(JNIEnv* env) {
17 static const char kClassName[] = "java.lang.Runnable";
18 static std::atomic<jclass> cached_class;
19 return jni_zero::internal::LazyGetClass(env, kClassName, &cached_class);
20 }
21 #endif
22
23 namespace JNI_Runnable {
24 // Native to Java functions
Java_Runnable_run(JNIEnv * env,const jni_zero::JavaRef<jobject> & obj)25 [[maybe_unused]] static void Java_Runnable_run(
26 JNIEnv* env,
27 const jni_zero::JavaRef<jobject>& obj) {
28 static std::atomic<jmethodID> cached_method_id(nullptr);
29 jclass clazz = java_lang_Runnable_clazz(env);
30 CHECK_CLAZZ(env, obj.obj(), clazz);
31 jni_zero::internal::JniJavaCallContext<true> call_context;
32 call_context.Init<jni_zero::MethodID::TYPE_INSTANCE>(
33 env,
34 clazz,
35 "run",
36 "()V",
37 &cached_method_id);
38 env->CallVoidMethod(obj.obj(), call_context.method_id());
39 }
40
41
42 } // namespace JNI_Runnable
43 #endif // java_lang_Runnable_JNI
44