Skip to content

Commit 72ab203

Browse files
committed
Merge pull request #108019 from limbonaut/fix-jni-generic-array-conversion
Add missing JNI variant conversion for generic Array
2 parents 2f39f47 + 1bea370 commit 72ab203

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

platform/android/jni_utils.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,22 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant *p_a
199199
v.obj = jdict;
200200
} break;
201201

202+
case Variant::ARRAY: {
203+
Array array = *p_arg;
204+
jobjectArray arr = env->NewObjectArray(array.size(), env->FindClass("java/lang/Object"), nullptr);
205+
206+
for (int j = 0; j < array.size(); j++) {
207+
Variant var = array[j];
208+
jvalret valret = _variant_to_jvalue(env, var.get_type(), &var, true);
209+
env->SetObjectArrayElement(arr, j, valret.val.l);
210+
if (valret.obj) {
211+
env->DeleteLocalRef(valret.obj);
212+
}
213+
}
214+
v.val.l = arr;
215+
v.obj = arr;
216+
} break;
217+
202218
case Variant::PACKED_INT32_ARRAY: {
203219
Vector<int> array = *p_arg;
204220
jintArray arr = env->NewIntArray(array.size());

0 commit comments

Comments
 (0)