@@ -82,7 +82,7 @@ jobject javaFindBestMatchingConstructor(
8282
8383 for (std::list<jobject>::iterator it = constructors.begin (); it != constructors.end (); it++) {
8484 jarray parameters = (jarray)env->CallObjectMethod (*it, constructor_getParameterTypes);
85- if (env->GetArrayLength (parameters) == (jsize)argTypes.size ()) {
85+ if (env->GetArrayLength (parameters) == (jsize)argTypes.size ()) {
8686 return *it; // TODO: check parameters
8787 }
8888 }
@@ -106,15 +106,18 @@ void javaDetachCurrentThread(JavaVM* jvm) {
106106jvalueType javaGetType (JNIEnv *env, jclass type) {
107107 // TODO: has to be a better way
108108 const char *typeStr = javaObjectToString (env, type).c_str ();
109+ // printf("%s\n", typeStr);
109110 if (strcmp (typeStr, " int" ) == 0 ) {
110111 return TYPE_INT;
112+ } else if (strcmp (typeStr, " void" ) == 0 ) {
113+ return TYPE_VOID;
114+ } else if (strcmp (typeStr, " boolean" ) == 0 ) {
115+ return TYPE_BOOLEAN;
111116 } else if (strcmp (typeStr, " class java.lang.String" ) == 0 ) {
112117 return TYPE_STRING;
113118 }
114-
115- // jclass intClazz = env->FindClass("java/lang/Integer");
116119
117- return TYPE_OBJECT;
120+ return TYPE_OBJECT;
118121}
119122
120123jclass javaFindClass (JNIEnv* env, std::string className) {
@@ -142,7 +145,7 @@ jobject v8ToJava(JNIEnv* env, v8::Local<v8::Value> arg, int *methodArgType) {
142145jarray v8ToJava (JNIEnv* env, const v8::Arguments& args, int start, int end, std::list<int > *methodArgTypes) {
143146 jclass clazz = env->FindClass (" java/lang/Object" );
144147 jobjectArray results = env->NewObjectArray (end-start, clazz, NULL );
145-
148+
146149 for (int i=start; i<end; i++) {
147150 int methodArgType;
148151 jobject val = v8ToJava (env, args[i], &methodArgType);
@@ -151,6 +154,6 @@ jarray v8ToJava(JNIEnv* env, const v8::Arguments& args, int start, int end, std:
151154 methodArgTypes->push_back (methodArgType);
152155 }
153156 }
154-
157+
155158 return results;
156159}
0 commit comments