|
@@ -199,6 +199,22 @@ jvalret _variant_to_jvalue(JNIEnv *env, Variant::Type p_type, const Variant *p_a
|
|
v.obj = jdict;
|
|
v.obj = jdict;
|
|
} break;
|
|
} 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: {
|
|
case Variant::PACKED_INT32_ARRAY: {
|
|
Vector<int> array = *p_arg;
|
|
Vector<int> array = *p_arg;
|
|
jintArray arr = env->NewIntArray(array.size());
|
|
jintArray arr = env->NewIntArray(array.size());
|