From 9d5b6c2faf091c975e27d6c7728dac786096d00c Mon Sep 17 00:00:00 2001 From: "Hoa V. DINH" Date: Wed, 11 Nov 2015 07:48:11 -0800 Subject: prevent local reference table overflow --- src/java/TypesUtils.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/java') diff --git a/src/java/TypesUtils.cpp b/src/java/TypesUtils.cpp index 4fe57e26..98939e65 100644 --- a/src/java/TypesUtils.cpp +++ b/src/java/TypesUtils.cpp @@ -220,11 +220,13 @@ static jobject hashmapObjectToJavaConverter(JNIEnv * env, Object * obj) jmethodID method = env->GetMethodID(cls, "put", "(Ljava/lang/Object;Ljava/lang/Object;)V"); Array * keys = hashMap->allKeys(); for(unsigned int i = 0 ; i < keys->count() ; i ++) { + PushLocalFrame(env, 32); Object * key = keys->objectAtIndex(i); jobject javaKey = mcObjectToJava(env, key); Object * value = hashMap->objectForKey(key); jobject javaValue = mcObjectToJava(env, value); env->CallVoidMethod(javaHashMap, method, javaKey, javaValue); + PopLocalFrame(env, NULL); } return javaHashMap; } @@ -238,11 +240,13 @@ static jobject arrayObjectToJavaConverter(JNIEnv * env, Object * obj) jmethodID method = env->GetMethodID(cls, "add", "(Ljava/lang/Object;)Z"); MCLog("add method %p", method); for(unsigned int i = 0 ; i < array->count() ; i ++) { + PushLocalFrame(env, 32); MCLog("converting object %s", MCUTF8(array->objectAtIndex(i))); jobject javaObject = mcObjectToJava(env, array->objectAtIndex(i)); MCLog("add object %p", javaObject); env->CallBooleanMethod(javaVector, method, javaObject); MCLog("added object %p", javaObject); + PopLocalFrame(env, NULL); } MCLog("array converted"); return javaVector; -- cgit v1.2.3