bind: preserve no-arg Java constructors

When the Java class parser began culling unused constructors, the
logic for determining whether a given Java class has a no-arg
constructor broke when the no-arg constructor is culled. Add
an explicit field for tracking the no-arg constructor property.

Change-Id: Ib68929ae1108bd6fa1fd23de1d134332eb0d97a2
Reviewed-on: https://go-review.googlesource.com/29875
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
This commit is contained in:
Elias Naur
2016-09-30 14:00:14 +00:00
parent 1663ffa95c
commit 2dcaa053a0
5 changed files with 37 additions and 15 deletions
+9
View File
@@ -125,6 +125,9 @@ Java_go_java_Java__1init(JNIEnv *env, jclass _unused) {
clazz = (*env)->FindClass(env, "go/java/Future");
proxy_class_java_Future = (*env)->NewGlobalRef(env, clazz);
proxy_class_java_Future_cons = (*env)->GetMethodID(env, clazz, "<init>", "(Lgo/Seq$Ref;)V");
clazz = (*env)->FindClass(env, "go/java/Object");
proxy_class_java_Object = (*env)->NewGlobalRef(env, clazz);
proxy_class_java_Object_cons = (*env)->GetMethodID(env, clazz, "<init>", "(Lgo/Seq$Ref;)V");
clazz = (*env)->FindClass(env, "go/java/Runnable");
proxy_class_java_Runnable = (*env)->NewGlobalRef(env, clazz);
proxy_class_java_Runnable_cons = (*env)->GetMethodID(env, clazz, "<init>", "(Lgo/Seq$Ref;)V");
@@ -207,6 +210,12 @@ Java_go_java_InputStream_getInputStream(JNIEnv *env, jobject this) {
return _r0;
}
JNIEXPORT jobject JNICALL
Java_go_java_Object__1_1New(JNIEnv *env, jclass clazz) {
int32_t refnum = new_java_Object();
return go_seq_from_refnum(env, refnum, NULL, NULL);
}
JNIEXPORT void JNICALL
Java_go_java_Object_setObject(JNIEnv *env, jobject this, jobject v) {
int32_t o = go_seq_to_refnum(env, this);