You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
Add 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;
|
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());
|
||||||
|
|||||||
Reference in New Issue
Block a user