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