Add support for JavaToNativeFloatArray
Change-Id: I75482debc163d2c5f173cad644cd25ceb2996b38 Bug: webrtc:15047 Change-Id: I75482debc163d2c5f173cad644cd25ceb2996b38 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299240 Reviewed-by: Paulina Hensman <phensman@webrtc.org> Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/main@{#39713}
This commit is contained in:
parent
e7482b403d
commit
49572e3438
@ -265,6 +265,21 @@ std::vector<int32_t> JavaToNativeIntArray(JNIEnv* env,
|
||||
return container;
|
||||
}
|
||||
|
||||
std::vector<float> JavaToNativeFloatArray(JNIEnv* env,
|
||||
const JavaRef<jfloatArray>& jarray) {
|
||||
// jfloat is a "machine-dependent native type" which represents a 32-bit
|
||||
// float. C++ makes no guarantees about the size of floating point types, and
|
||||
// some exotic architectures don't even have 32-bit floats (or even binary
|
||||
// floats), but on all architectures we care about this is a float.
|
||||
static_assert(std::is_same<float, jfloat>::value, "jfloat must be float");
|
||||
float* array_ptr =
|
||||
env->GetFloatArrayElements(jarray.obj(), /*isCopy=*/nullptr);
|
||||
size_t array_length = env->GetArrayLength(jarray.obj());
|
||||
std::vector<float> container(array_ptr, array_ptr + array_length);
|
||||
env->ReleaseFloatArrayElements(jarray.obj(), array_ptr, /*mode=*/JNI_ABORT);
|
||||
return container;
|
||||
}
|
||||
|
||||
ScopedJavaLocalRef<jobjectArray> NativeToJavaBooleanArray(
|
||||
JNIEnv* env,
|
||||
const std::vector<bool>& container) {
|
||||
|
||||
@ -242,6 +242,8 @@ std::vector<int8_t> JavaToNativeByteArray(JNIEnv* env,
|
||||
const JavaRef<jbyteArray>& jarray);
|
||||
std::vector<int32_t> JavaToNativeIntArray(JNIEnv* env,
|
||||
const JavaRef<jintArray>& jarray);
|
||||
std::vector<float> JavaToNativeFloatArray(JNIEnv* env,
|
||||
const JavaRef<jfloatArray>& jarray);
|
||||
|
||||
ScopedJavaLocalRef<jobjectArray> NativeToJavaBooleanArray(
|
||||
JNIEnv* env,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user