Merge pull request #67581 from aaronfranke/android-float
Use proper types for converting Java float/double arrays in Android code
This commit is contained in:
commit
638dfe2528
@ -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;") {
|
||||||
|
Loading…
Reference in New Issue
Block a user