From 1bea370df733c43dac99462dfeaa060867b6f55b Mon Sep 17 00:00:00 2001 From: Serhii Snitsaruk Date: Thu, 26 Jun 2025 19:16:52 +0200 Subject: [PATCH] Add JNI variant conversion for generic Array --- platform/android/jni_utils.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/platform/android/jni_utils.cpp b/platform/android/jni_utils.cpp index 561c76e35d2..baf3044b348 100644 --- a/platform/android/jni_utils.cpp +++ b/platform/android/jni_utils.cpp @@ -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 array = *p_arg; jintArray arr = env->NewIntArray(array.size());