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 |