| Index: base/android/jni_array.cc
|
| diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc
|
| index bc922f883c2f8c296fbbfdd4a2590afc2fb11bc9..431eea0151d7e345c76e8f5d6c9fc2106974d50c 100644
|
| --- a/base/android/jni_array.cc
|
| +++ b/base/android/jni_array.cc
|
| @@ -235,5 +235,28 @@ void JavaArrayOfByteArrayToStringVector(
|
| }
|
| }
|
|
|
| +void JavaArrayOfIntArrayToIntVector(
|
| + JNIEnv* env,
|
| + jobjectArray array,
|
| + std::vector<std::vector<int>>* out) {
|
| + DCHECK(out);
|
| + size_t len = SafeGetArrayLength(env, array);
|
| + out->resize(len);
|
| + for (size_t i = 0; i < len; ++i) {
|
| + ScopedJavaLocalRef<jintArray> int_array(
|
| + env, static_cast<jintArray>(env->GetObjectArrayElement(array, i)));
|
| + jsize array_len = env->GetArrayLength(int_array.obj());
|
| + jint* ints = env->GetIntArrayElements(int_array.obj(), nullptr);
|
| + std::vector<int> vector_ints = out->at(i);
|
| + vector_ints.resize(array_len);
|
| + for (jsize j = 0; j < array_len; ++j) {
|
| + vector_ints[j] = static_cast<int>(ints[j]);
|
| + }
|
| +
|
| + (*out)[i] = vector_ints;
|
| + env->ReleaseIntArrayElements(int_array.obj(), ints, JNI_ABORT);
|
| + }
|
| +}
|
| +
|
| } // namespace android
|
| } // namespace base
|
|
|