Chromium Code Reviews| Index: base/android/jni_array.cc |
| diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc |
| index bc922f883c2f8c296fbbfdd4a2590afc2fb11bc9..7019b7adb3d17598359614de725ac57f1a5c66de 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(), NULL); |
|
David Trainor- moved to gerrit
2015/10/15 21:04:56
nullptr
Theresa
2015/10/24 00:06:44
Done.
|
| + 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 |