Today, the Seq.Ref class has two purposes. For Java references, Ref contains the refnum, a reference to the Java object and a reference count. For Go references, Ref contains the refnum and its finalizer makes sure to decrement the reference count on the Go side. The next CL will replace the use of finalizers with an explicit ReferenceQueue of Go references, and the Ref class will no longer be used for Go refences. To prepare for that, this CL pulls up the construction of Go referencing Ref instances into the Seq.trackGoRef function. Change-Id: I9eefe238cd3fd1b661b2af11d331a2f61e31303b Reviewed-on: https://go-review.googlesource.com/106875 Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
277 lines
11 KiB
Plaintext
277 lines
11 KiB
Plaintext
// JNI functions for the Go <=> Java bridge.
|
|
// gobind -lang=java interfaces
|
|
//
|
|
// File is generated by gobind. Do not edit.
|
|
|
|
#include <android/log.h>
|
|
#include <stdint.h>
|
|
#include "seq.h"
|
|
#include "_cgo_export.h"
|
|
#include "interfaces.h"
|
|
|
|
jclass proxy_class_interfaces_Error;
|
|
jmethodID proxy_class_interfaces_Error_cons;
|
|
static jmethodID mid_Error_Err;
|
|
jclass proxy_class_interfaces_I;
|
|
jmethodID proxy_class_interfaces_I_cons;
|
|
static jmethodID mid_I_Rand;
|
|
jclass proxy_class_interfaces_I1;
|
|
jmethodID proxy_class_interfaces_I1_cons;
|
|
static jmethodID mid_I1_J;
|
|
jclass proxy_class_interfaces_I2;
|
|
jmethodID proxy_class_interfaces_I2_cons;
|
|
static jmethodID mid_I2_G;
|
|
jclass proxy_class_interfaces_I3;
|
|
jmethodID proxy_class_interfaces_I3_cons;
|
|
static jmethodID mid_I3_F;
|
|
jclass proxy_class_interfaces_Interfaces;
|
|
jmethodID proxy_class_interfaces_Interfaces_cons;
|
|
static jmethodID mid_Interfaces_SomeMethod;
|
|
jclass proxy_class_interfaces_LargerI;
|
|
jmethodID proxy_class_interfaces_LargerI_cons;
|
|
static jmethodID mid_LargerI_AnotherFunc;
|
|
static jmethodID mid_LargerI_Rand;
|
|
jclass proxy_class_interfaces_SameI;
|
|
jmethodID proxy_class_interfaces_SameI_cons;
|
|
static jmethodID mid_SameI_Rand;
|
|
jclass proxy_class_interfaces_WithParam;
|
|
jmethodID proxy_class_interfaces_WithParam_cons;
|
|
static jmethodID mid_WithParam_HasParam;
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces__1init(JNIEnv *env, jclass _unused) {
|
|
jclass clazz;
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyError");
|
|
proxy_class_interfaces_Error = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_Error_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/Error");
|
|
mid_Error_Err = (*env)->GetMethodID(env, clazz, "err", "()V");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyI");
|
|
proxy_class_interfaces_I = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_I_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/I");
|
|
mid_I_Rand = (*env)->GetMethodID(env, clazz, "rand", "()I");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyI1");
|
|
proxy_class_interfaces_I1 = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_I1_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/I1");
|
|
mid_I1_J = (*env)->GetMethodID(env, clazz, "j", "()V");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyI2");
|
|
proxy_class_interfaces_I2 = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_I2_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/I2");
|
|
mid_I2_G = (*env)->GetMethodID(env, clazz, "g", "()V");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyI3");
|
|
proxy_class_interfaces_I3 = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_I3_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/I3");
|
|
mid_I3_F = (*env)->GetMethodID(env, clazz, "f", "()Linterfaces/I1;");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyInterfaces");
|
|
proxy_class_interfaces_Interfaces = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_Interfaces_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces_");
|
|
mid_Interfaces_SomeMethod = (*env)->GetMethodID(env, clazz, "someMethod", "()V");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyLargerI");
|
|
proxy_class_interfaces_LargerI = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_LargerI_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/LargerI");
|
|
mid_LargerI_AnotherFunc = (*env)->GetMethodID(env, clazz, "anotherFunc", "()V");
|
|
mid_LargerI_Rand = (*env)->GetMethodID(env, clazz, "rand", "()I");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxySameI");
|
|
proxy_class_interfaces_SameI = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_SameI_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/SameI");
|
|
mid_SameI_Rand = (*env)->GetMethodID(env, clazz, "rand", "()I");
|
|
|
|
clazz = (*env)->FindClass(env, "interfaces/Interfaces$proxyWithParam");
|
|
proxy_class_interfaces_WithParam = (*env)->NewGlobalRef(env, clazz);
|
|
proxy_class_interfaces_WithParam_cons = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
|
|
clazz = (*env)->FindClass(env, "interfaces/WithParam");
|
|
mid_WithParam_HasParam = (*env)->GetMethodID(env, clazz, "hasParam", "(Z)V");
|
|
|
|
}
|
|
|
|
JNIEXPORT jint JNICALL
|
|
Java_interfaces_Interfaces_add3(JNIEnv* env, jclass _clazz, jobject r) {
|
|
int32_t _r = go_seq_to_refnum(env, r);
|
|
int32_t r0 = proxyinterfaces__Add3(_r);
|
|
jint _r0 = (jint)r0;
|
|
return _r0;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_callErr(JNIEnv* env, jclass _clazz, jobject e) {
|
|
int32_t _e = go_seq_to_refnum(env, e);
|
|
int32_t r0 = proxyinterfaces__CallErr(_e);
|
|
jobject _r0 = go_seq_from_refnum(env, r0, proxy_class__error, proxy_class__error_cons);
|
|
go_seq_maybe_throw_exception(env, _r0);
|
|
}
|
|
|
|
JNIEXPORT jobject JNICALL
|
|
Java_interfaces_Interfaces_seven(JNIEnv* env, jclass _clazz) {
|
|
int32_t r0 = proxyinterfaces__Seven();
|
|
jobject _r0 = go_seq_from_refnum(env, r0, proxy_class_interfaces_I, proxy_class_interfaces_I_cons);
|
|
return _r0;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyError_err(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
int32_t r0 = proxyinterfaces_Error_Err(o);
|
|
jobject _r0 = go_seq_from_refnum(env, r0, proxy_class__error, proxy_class__error_cons);
|
|
go_seq_maybe_throw_exception(env, _r0);
|
|
}
|
|
|
|
int32_t cproxyinterfaces_Error_Err(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_Error, proxy_class_interfaces_Error_cons);
|
|
(*env)->CallVoidMethod(env, o, mid_Error_Err);
|
|
jobject exc = go_seq_get_exception(env);
|
|
int32_t _exc = go_seq_to_refnum(env, exc);
|
|
go_seq_pop_local_frame(env);
|
|
return _exc;
|
|
}
|
|
|
|
JNIEXPORT jint JNICALL
|
|
Java_interfaces_Interfaces_00024proxyI_rand(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
int32_t r0 = proxyinterfaces_I_Rand(o);
|
|
jint _r0 = (jint)r0;
|
|
return _r0;
|
|
}
|
|
|
|
int32_t cproxyinterfaces_I_Rand(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_I, proxy_class_interfaces_I_cons);
|
|
jint res = (*env)->CallIntMethod(env, o, mid_I_Rand);
|
|
int32_t _res = (int32_t)res;
|
|
go_seq_pop_local_frame(env);
|
|
return _res;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyI1_j(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
proxyinterfaces_I1_J(o);
|
|
}
|
|
|
|
void cproxyinterfaces_I1_J(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_I1, proxy_class_interfaces_I1_cons);
|
|
(*env)->CallVoidMethod(env, o, mid_I1_J);
|
|
go_seq_pop_local_frame(env);
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyI2_g(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
proxyinterfaces_I2_G(o);
|
|
}
|
|
|
|
void cproxyinterfaces_I2_G(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_I2, proxy_class_interfaces_I2_cons);
|
|
(*env)->CallVoidMethod(env, o, mid_I2_G);
|
|
go_seq_pop_local_frame(env);
|
|
}
|
|
|
|
JNIEXPORT jobject JNICALL
|
|
Java_interfaces_Interfaces_00024proxyI3_f(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
int32_t r0 = proxyinterfaces_I3_F(o);
|
|
jobject _r0 = go_seq_from_refnum(env, r0, proxy_class_interfaces_I1, proxy_class_interfaces_I1_cons);
|
|
return _r0;
|
|
}
|
|
|
|
int32_t cproxyinterfaces_I3_F(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_I3, proxy_class_interfaces_I3_cons);
|
|
jobject res = (*env)->CallObjectMethod(env, o, mid_I3_F);
|
|
int32_t _res = go_seq_to_refnum(env, res);
|
|
go_seq_pop_local_frame(env);
|
|
return _res;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyInterfaces_someMethod(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
proxyinterfaces_Interfaces_SomeMethod(o);
|
|
}
|
|
|
|
void cproxyinterfaces_Interfaces_SomeMethod(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_Interfaces, proxy_class_interfaces_Interfaces_cons);
|
|
(*env)->CallVoidMethod(env, o, mid_Interfaces_SomeMethod);
|
|
go_seq_pop_local_frame(env);
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyLargerI_anotherFunc(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
proxyinterfaces_LargerI_AnotherFunc(o);
|
|
}
|
|
|
|
void cproxyinterfaces_LargerI_AnotherFunc(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_LargerI, proxy_class_interfaces_LargerI_cons);
|
|
(*env)->CallVoidMethod(env, o, mid_LargerI_AnotherFunc);
|
|
go_seq_pop_local_frame(env);
|
|
}
|
|
|
|
JNIEXPORT jint JNICALL
|
|
Java_interfaces_Interfaces_00024proxyLargerI_rand(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
int32_t r0 = proxyinterfaces_LargerI_Rand(o);
|
|
jint _r0 = (jint)r0;
|
|
return _r0;
|
|
}
|
|
|
|
int32_t cproxyinterfaces_LargerI_Rand(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_LargerI, proxy_class_interfaces_LargerI_cons);
|
|
jint res = (*env)->CallIntMethod(env, o, mid_LargerI_Rand);
|
|
int32_t _res = (int32_t)res;
|
|
go_seq_pop_local_frame(env);
|
|
return _res;
|
|
}
|
|
|
|
JNIEXPORT jint JNICALL
|
|
Java_interfaces_Interfaces_00024proxySameI_rand(JNIEnv* env, jobject __this__) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
int32_t r0 = proxyinterfaces_SameI_Rand(o);
|
|
jint _r0 = (jint)r0;
|
|
return _r0;
|
|
}
|
|
|
|
int32_t cproxyinterfaces_SameI_Rand(int32_t refnum) {
|
|
JNIEnv *env = go_seq_push_local_frame(0);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_SameI, proxy_class_interfaces_SameI_cons);
|
|
jint res = (*env)->CallIntMethod(env, o, mid_SameI_Rand);
|
|
int32_t _res = (int32_t)res;
|
|
go_seq_pop_local_frame(env);
|
|
return _res;
|
|
}
|
|
|
|
JNIEXPORT void JNICALL
|
|
Java_interfaces_Interfaces_00024proxyWithParam_hasParam(JNIEnv* env, jobject __this__, jboolean p0) {
|
|
int32_t o = go_seq_to_refnum_go(env, __this__);
|
|
char _p0 = (char)p0;
|
|
proxyinterfaces_WithParam_HasParam(o, _p0);
|
|
}
|
|
|
|
void cproxyinterfaces_WithParam_HasParam(int32_t refnum, char p0) {
|
|
JNIEnv *env = go_seq_push_local_frame(1);
|
|
jobject o = go_seq_from_refnum(env, refnum, proxy_class_interfaces_WithParam, proxy_class_interfaces_WithParam_cons);
|
|
jboolean _p0 = p0 ? JNI_TRUE : JNI_FALSE;
|
|
(*env)->CallVoidMethod(env, o, mid_WithParam_HasParam, _p0);
|
|
go_seq_pop_local_frame(env);
|
|
}
|
|
|