mirror of
https://github.com/netbirdio/gomobile-tvos-fork.git
synced 2026-05-22 18:43:29 -07:00
bind,internal/importers: always generate toString methods
When wrapping Java exceptions, their toString() methods are called from the wrapper's Error() method to satisfy the Go error interface. Make sure toString() is always included, even if it never directly referenced from bound packages. Change-Id: I5653f6ad82afbe4b061e02a69d60453000288a83 Reviewed-on: https://go-review.googlesource.com/35189 Reviewed-by: David Crawshaw <crawshaw@golang.org>
This commit is contained in:
Vendored
+180
@@ -10,16 +10,20 @@ static jclass class_java_io_InputStream;
|
||||
static jmethodID m_java_io_InputStream_read__;
|
||||
static jmethodID m_java_io_InputStream_read___3B;
|
||||
static jmethodID m_java_io_InputStream_read___3BII;
|
||||
static jmethodID m_java_io_InputStream_toString;
|
||||
static jclass class_java_util_concurrent_Future;
|
||||
static jmethodID m_java_util_concurrent_Future_get__;
|
||||
static jmethodID m_java_util_concurrent_Future_get__JLjava_util_concurrent_TimeUnit_2;
|
||||
static jclass class_java_lang_Object;
|
||||
static jmethodID m_java_lang_Object_toString;
|
||||
static jclass class_java_util_concurrent_TimeUnit;
|
||||
static jmethodID m_java_util_concurrent_TimeUnit_toString;
|
||||
static jclass class_java_util_Spliterators;
|
||||
static jmethodID m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_2;
|
||||
static jmethodID m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfInt_2;
|
||||
static jmethodID m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfLong_2;
|
||||
static jmethodID m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfDouble_2;
|
||||
static jmethodID m_java_util_Spliterators_toString;
|
||||
ret_jint cproxy_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_2(jint a0) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
jobject _a0 = go_seq_from_refnum(env, a0, NULL, NULL);
|
||||
@@ -82,6 +86,7 @@ ret_jint cproxy_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024O
|
||||
|
||||
static jclass class_java_lang_System;
|
||||
static jmethodID m_s_java_lang_System_console;
|
||||
static jmethodID m_java_lang_System_toString;
|
||||
ret_jint cproxy_s_java_lang_System_console() {
|
||||
JNIEnv *env = go_seq_push_local_frame(0);
|
||||
jobject res = (*env)->CallStaticObjectMethod(env, class_java_lang_System, m_s_java_lang_System_console);
|
||||
@@ -110,8 +115,12 @@ static jmethodID m_java_InputStream_read___3B;
|
||||
static jmethodID sm_java_InputStream_read___3B;
|
||||
static jmethodID m_java_InputStream_read___3BII;
|
||||
static jmethodID sm_java_InputStream_read___3BII;
|
||||
static jmethodID m_java_InputStream_toString;
|
||||
static jmethodID sm_java_InputStream_toString;
|
||||
static jclass class_java_Object;
|
||||
static jclass sclass_java_Object;
|
||||
static jmethodID m_java_Object_toString;
|
||||
static jmethodID sm_java_Object_toString;
|
||||
static jclass class_java_Runnable;
|
||||
static jclass sclass_java_Runnable;
|
||||
static jmethodID m_java_Runnable_run;
|
||||
@@ -126,6 +135,7 @@ static jclass class_java_util_PrimitiveIterator_OfDouble;
|
||||
static jclass class_java_util_Spliterator_OfDouble;
|
||||
static jclass class_java_io_Console;
|
||||
static jmethodID m_java_io_Console_flush;
|
||||
static jmethodID m_java_io_Console_toString;
|
||||
|
||||
void init_proxies() {
|
||||
JNIEnv *env = go_seq_push_local_frame(20);
|
||||
@@ -138,23 +148,28 @@ void init_proxies() {
|
||||
m_java_io_InputStream_read__ = go_seq_get_method_id(clazz, "read", "()I");
|
||||
m_java_io_InputStream_read___3B = go_seq_get_method_id(clazz, "read", "([B)I");
|
||||
m_java_io_InputStream_read___3BII = go_seq_get_method_id(clazz, "read", "([BII)I");
|
||||
m_java_io_InputStream_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/util/concurrent/Future");
|
||||
class_java_util_concurrent_Future = (*env)->NewGlobalRef(env, clazz);
|
||||
m_java_util_concurrent_Future_get__ = go_seq_get_method_id(clazz, "get", "()Ljava/lang/Object;");
|
||||
m_java_util_concurrent_Future_get__JLjava_util_concurrent_TimeUnit_2 = go_seq_get_method_id(clazz, "get", "(JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;");
|
||||
clazz = (*env)->FindClass(env, "java/lang/Object");
|
||||
class_java_lang_Object = (*env)->NewGlobalRef(env, clazz);
|
||||
m_java_lang_Object_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/util/concurrent/TimeUnit");
|
||||
class_java_util_concurrent_TimeUnit = (*env)->NewGlobalRef(env, clazz);
|
||||
m_java_util_concurrent_TimeUnit_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/util/Spliterators");
|
||||
class_java_util_Spliterators = (*env)->NewGlobalRef(env, clazz);
|
||||
m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_2 = go_seq_get_static_method_id(clazz, "iterator", "(Ljava/util/Spliterator;)Ljava/util/Iterator;");
|
||||
m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfInt_2 = go_seq_get_static_method_id(clazz, "iterator", "(Ljava/util/Spliterator$OfInt;)Ljava/util/PrimitiveIterator$OfInt;");
|
||||
m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfLong_2 = go_seq_get_static_method_id(clazz, "iterator", "(Ljava/util/Spliterator$OfLong;)Ljava/util/PrimitiveIterator$OfLong;");
|
||||
m_s_java_util_Spliterators_iterator__Ljava_util_Spliterator_00024OfDouble_2 = go_seq_get_static_method_id(clazz, "iterator", "(Ljava/util/Spliterator$OfDouble;)Ljava/util/PrimitiveIterator$OfDouble;");
|
||||
m_java_util_Spliterators_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/lang/System");
|
||||
class_java_lang_System = (*env)->NewGlobalRef(env, clazz);
|
||||
m_s_java_lang_System_console = go_seq_get_static_method_id(clazz, "console", "()Ljava/io/Console;");
|
||||
m_java_lang_System_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/Future");
|
||||
class_java_Future = (*env)->NewGlobalRef(env, clazz);
|
||||
sclass_java_Future = (*env)->GetSuperclass(env, clazz);
|
||||
@@ -173,10 +188,14 @@ void init_proxies() {
|
||||
sm_java_InputStream_read___3B = go_seq_get_method_id(sclass_java_InputStream, "read", "([B)I");
|
||||
m_java_InputStream_read___3BII = go_seq_get_method_id(clazz, "read", "([BII)I");
|
||||
sm_java_InputStream_read___3BII = go_seq_get_method_id(sclass_java_InputStream, "read", "([BII)I");
|
||||
m_java_InputStream_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
sm_java_InputStream_toString = go_seq_get_method_id(sclass_java_InputStream, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/Object");
|
||||
class_java_Object = (*env)->NewGlobalRef(env, clazz);
|
||||
sclass_java_Object = (*env)->GetSuperclass(env, clazz);
|
||||
sclass_java_Object = (*env)->NewGlobalRef(env, sclass_java_Object);
|
||||
m_java_Object_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
sm_java_Object_toString = go_seq_get_method_id(sclass_java_Object, "toString", "()Ljava/lang/String;");
|
||||
clazz = (*env)->FindClass(env, "java/Runnable");
|
||||
class_java_Runnable = (*env)->NewGlobalRef(env, clazz);
|
||||
sclass_java_Runnable = (*env)->GetSuperclass(env, clazz);
|
||||
@@ -202,6 +221,7 @@ void init_proxies() {
|
||||
clazz = (*env)->FindClass(env, "java/io/Console");
|
||||
class_java_io_Console = (*env)->NewGlobalRef(env, clazz);
|
||||
m_java_io_Console_flush = go_seq_get_method_id(clazz, "flush", "()V");
|
||||
m_java_io_Console_toString = go_seq_get_method_id(clazz, "toString", "()Ljava/lang/String;");
|
||||
go_seq_pop_local_frame(env);
|
||||
}
|
||||
|
||||
@@ -268,6 +288,22 @@ ret_jint cproxy_java_io_InputStream_read___3BII(jint this, nbyteslice a0, jint a
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_io_InputStream_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_io_InputStream_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_jint cproxy_java_util_concurrent_Future_get__(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
@@ -302,6 +338,70 @@ ret_jint cproxy_java_util_concurrent_Future_get__JLjava_util_concurrent_TimeUnit
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_lang_Object_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_lang_Object_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_util_concurrent_TimeUnit_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_util_concurrent_TimeUnit_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_util_Spliterators_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_util_Spliterators_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_lang_System_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_lang_System_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_jint cproxy_java_Future_get__(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
@@ -474,6 +574,70 @@ ret_jint csuper_java_InputStream_read___3BII(jint this, nbyteslice a0, jint a1,
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_InputStream_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_InputStream_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring csuper_java_InputStream_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallNonvirtualObjectMethod(env, _this, sclass_java_InputStream, sm_java_InputStream_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_Object_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_Object_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
ret_nstring csuper_java_Object_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallNonvirtualObjectMethod(env, _this, sclass_java_Object, sm_java_Object_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
jint cproxy_java_Runnable_run(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
@@ -507,6 +671,22 @@ jint cproxy_java_io_Console_flush(jint this) {
|
||||
return _exc_ref;
|
||||
}
|
||||
|
||||
ret_nstring cproxy_java_io_Console_toString(jint this) {
|
||||
JNIEnv *env = go_seq_push_local_frame(1);
|
||||
// Must be a Java object
|
||||
jobject _this = go_seq_from_refnum(env, this, NULL, NULL);
|
||||
jstring res = (*env)->CallObjectMethod(env, _this, m_java_io_Console_toString);
|
||||
jobject _exc = go_seq_get_exception(env);
|
||||
int32_t _exc_ref = go_seq_to_refnum(env, _exc);
|
||||
if (_exc != NULL) {
|
||||
res = NULL;
|
||||
}
|
||||
nstring _res = go_seq_from_java_string(env, res);
|
||||
go_seq_pop_local_frame(env);
|
||||
ret_nstring __res = {_res, _exc_ref};
|
||||
return __res;
|
||||
}
|
||||
|
||||
// JNI functions for the Go <=> Java bridge.
|
||||
// gobind -lang=java classes
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user