os_android.c raw
1 // SPDX-License-Identifier: Unlicense OR MIT
2
3 #include <jni.h>
4 #include "_cgo_export.h"
5
6 jint gio_jni_GetEnv(JavaVM *vm, JNIEnv **env, jint version) {
7 return (*vm)->GetEnv(vm, (void **)env, version);
8 }
9
10 jint gio_jni_GetJavaVM(JNIEnv *env, JavaVM **jvm) {
11 return (*env)->GetJavaVM(env, jvm);
12 }
13
14 jint gio_jni_AttachCurrentThread(JavaVM *vm, JNIEnv **p_env, void *thr_args) {
15 return (*vm)->AttachCurrentThread(vm, p_env, thr_args);
16 }
17
18 jint gio_jni_DetachCurrentThread(JavaVM *vm) {
19 return (*vm)->DetachCurrentThread(vm);
20 }
21
22 jobject gio_jni_NewGlobalRef(JNIEnv *env, jobject obj) {
23 return (*env)->NewGlobalRef(env, obj);
24 }
25
26 void gio_jni_DeleteGlobalRef(JNIEnv *env, jobject obj) {
27 (*env)->DeleteGlobalRef(env, obj);
28 }
29
30 jclass gio_jni_GetObjectClass(JNIEnv *env, jobject obj) {
31 return (*env)->GetObjectClass(env, obj);
32 }
33
34 jmethodID gio_jni_GetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig) {
35 return (*env)->GetMethodID(env, clazz, name, sig);
36 }
37
38 jmethodID gio_jni_GetStaticMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig) {
39 return (*env)->GetStaticMethodID(env, clazz, name, sig);
40 }
41
42 jfloat gio_jni_CallFloatMethod(JNIEnv *env, jobject obj, jmethodID methodID) {
43 return (*env)->CallFloatMethod(env, obj, methodID);
44 }
45
46 jint gio_jni_CallIntMethod(JNIEnv *env, jobject obj, jmethodID methodID) {
47 return (*env)->CallIntMethod(env, obj, methodID);
48 }
49
50 void gio_jni_CallStaticVoidMethodA(JNIEnv *env, jclass cls, jmethodID methodID, const jvalue *args) {
51 (*env)->CallStaticVoidMethodA(env, cls, methodID, args);
52 }
53
54 void gio_jni_CallVoidMethodA(JNIEnv *env, jobject obj, jmethodID methodID, const jvalue *args) {
55 (*env)->CallVoidMethodA(env, obj, methodID, args);
56 }
57
58 jbyte *gio_jni_GetByteArrayElements(JNIEnv *env, jbyteArray arr) {
59 return (*env)->GetByteArrayElements(env, arr, NULL);
60 }
61
62 void gio_jni_ReleaseByteArrayElements(JNIEnv *env, jbyteArray arr, jbyte *bytes) {
63 (*env)->ReleaseByteArrayElements(env, arr, bytes, JNI_ABORT);
64 }
65
66 jsize gio_jni_GetArrayLength(JNIEnv *env, jbyteArray arr) {
67 return (*env)->GetArrayLength(env, arr);
68 }
69
70 jstring gio_jni_NewString(JNIEnv *env, const jchar *unicodeChars, jsize len) {
71 return (*env)->NewString(env, unicodeChars, len);
72 }
73
74 jsize gio_jni_GetStringLength(JNIEnv *env, jstring str) {
75 return (*env)->GetStringLength(env, str);
76 }
77
78 const jchar *gio_jni_GetStringChars(JNIEnv *env, jstring str) {
79 return (*env)->GetStringChars(env, str, NULL);
80 }
81
82 jthrowable gio_jni_ExceptionOccurred(JNIEnv *env) {
83 return (*env)->ExceptionOccurred(env);
84 }
85
86 void gio_jni_ExceptionClear(JNIEnv *env) {
87 (*env)->ExceptionClear(env);
88 }
89
90 jobject gio_jni_CallObjectMethodA(JNIEnv *env, jobject obj, jmethodID method, jvalue *args) {
91 return (*env)->CallObjectMethodA(env, obj, method, args);
92 }
93
94 jobject gio_jni_CallStaticObjectMethodA(JNIEnv *env, jclass cls, jmethodID method, jvalue *args) {
95 return (*env)->CallStaticObjectMethodA(env, cls, method, args);
96 }
97