Index: base/android/jni_array.cc |
diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc |
index af8f5d20d6d4050e425ca6891c708292934e1595..2ce04299439f1e45fc6699cda1d02616b78fc4db 100644 |
--- a/base/android/jni_array.cc |
+++ b/base/android/jni_array.cc |
@@ -84,6 +84,26 @@ BASE_EXPORT ScopedJavaLocalRef<jlongArray> ToJavaLongArray( |
return ToJavaLongArray(env, longs.data(), longs.size()); |
} |
+// Returns a new Java float array converted from the given C++ float array. |
+BASE_EXPORT ScopedJavaLocalRef<jfloatArray> ToJavaFloatArray( |
+ JNIEnv* env, const float* floats, size_t len) { |
+ jfloatArray float_array = env->NewFloatArray(len); |
+ CheckException(env); |
+ DCHECK(float_array); |
+ |
+ env->SetFloatArrayRegion( |
+ float_array, 0, len, reinterpret_cast<const jfloat*>(floats)); |
+ CheckException(env); |
+ |
+ return ScopedJavaLocalRef<jfloatArray>(env, float_array); |
+} |
+ |
+BASE_EXPORT ScopedJavaLocalRef<jfloatArray> ToJavaFloatArray( |
+ JNIEnv* env, |
+ const std::vector<float>& floats) { |
+ return ToJavaFloatArray(env, floats.data(), floats.size()); |
+} |
+ |
ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfByteArray( |
JNIEnv* env, const std::vector<std::string>& v) { |
ScopedJavaLocalRef<jclass> byte_array_clazz = GetClass(env, "[B"); |