You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Merge pull request #108019 from limbonaut/fix-jni-generic-array-conversion
Add missing JNI variant conversion for generic Array
This commit is contained in:
@@ -199,6 +199,22 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant *p_a
|
||||
v.obj = jdict;
|
||||
} break;
|
||||
|
||||
case Variant::ARRAY: {
|
||||
Array array = *p_arg;
|
||||
jobjectArray arr = env->NewObjectArray(array.size(), env->FindClass("java/lang/Object"), nullptr);
|
||||
|
||||
for (int j = 0; j < array.size(); j++) {
|
||||
Variant var = array[j];
|
||||
jvalret valret = _variant_to_jvalue(env, var.get_type(), &var, true);
|
||||
env->SetObjectArrayElement(arr, j, valret.val.l);
|
||||
if (valret.obj) {
|
||||
env->DeleteLocalRef(valret.obj);
|
||||
}
|
||||
}
|
||||
v.val.l = arr;
|
||||
v.obj = arr;
|
||||
} break;
|
||||
|
||||
case Variant::PACKED_INT32_ARRAY: {
|
||||
Vector<int> array = *p_arg;
|
||||
jintArray arr = env->NewIntArray(array.size());
|
||||
|
||||
Reference in New Issue
Block a user