1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Fix JNI local reference table overflow when wrapping Java class with large method counts

This commit is contained in:
Fredia Huya-Kouadio
2025-08-16 22:09:20 -07:00
parent 0622cee189
commit 35fda7f857
5 changed files with 77 additions and 120 deletions

View File

@@ -91,8 +91,8 @@ JNIEXPORT jobject JNICALL Java_org_godotengine_godot_variant_Callable_nativeCall
Callable::CallError err;
Variant result;
callable.callp(argptrs, count, result, err);
jvalret jresult = _variant_to_jvalue(p_env, result.get_type(), &result, true);
ret = jresult.obj;
jvalue jresult = _variant_to_jvalue(p_env, result.get_type(), &result, true);
ret = jresult.l;
}
// Manually invoke the destructor to decrease the reference counts for the variant arguments.
@@ -107,8 +107,8 @@ JNIEXPORT jobject JNICALL Java_org_godotengine_godot_variant_Callable_nativeCall
Callable callable = _generate_callable(p_env, p_object_id, p_method_name, p_parameters);
if (callable.is_valid()) {
Variant result = callable.call();
jvalret jresult = _variant_to_jvalue(p_env, result.get_type(), &result, true);
return jresult.obj;
jvalue jresult = _variant_to_jvalue(p_env, result.get_type(), &result, true);
return jresult.l;
} else {
return nullptr;
}