1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Use proper types for converting Java float/double arrays in Android code

This commit is contained in:
Aaron Franke
2022-10-18 08:26:04 -05:00
parent 2e3662acbd
commit 01bec83cb6

View File

@@ -265,33 +265,33 @@ Variant _jobject_to_variant(JNIEnv *env, jobject obj) {
if (name == "[D") { if (name == "[D") {
jdoubleArray arr = (jdoubleArray)obj; jdoubleArray arr = (jdoubleArray)obj;
int fCount = env->GetArrayLength(arr); int fCount = env->GetArrayLength(arr);
PackedFloat32Array sarr; PackedFloat64Array packed_array;
sarr.resize(fCount); packed_array.resize(fCount);
real_t *w = sarr.ptrw(); double *w = packed_array.ptrw();
for (int i = 0; i < fCount; i++) { for (int i = 0; i < fCount; i++) {
double n; double n;
env->GetDoubleArrayRegion(arr, i, 1, &n); env->GetDoubleArrayRegion(arr, i, 1, &n);
w[i] = n; w[i] = n;
} }
return sarr; return packed_array;
} }
if (name == "[F") { if (name == "[F") {
jfloatArray arr = (jfloatArray)obj; jfloatArray arr = (jfloatArray)obj;
int fCount = env->GetArrayLength(arr); int fCount = env->GetArrayLength(arr);
PackedFloat32Array sarr; PackedFloat32Array packed_array;
sarr.resize(fCount); packed_array.resize(fCount);
real_t *w = sarr.ptrw(); float *w = packed_array.ptrw();
for (int i = 0; i < fCount; i++) { for (int i = 0; i < fCount; i++) {
float n; float n;
env->GetFloatArrayRegion(arr, i, 1, &n); env->GetFloatArrayRegion(arr, i, 1, &n);
w[i] = n; w[i] = n;
} }
return sarr; return packed_array;
} }
if (name == "[Ljava.lang.Object;") { if (name == "[Ljava.lang.Object;") {