| Index: base/android/jni_array.cc
|
| diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc
|
| index 0b2b67f8f2290828dc1123fd4b3abf881437798d..96c5980362d2affde03b53425d47089e24154939 100644
|
| --- a/base/android/jni_array.cc
|
| +++ b/base/android/jni_array.cc
|
| @@ -17,9 +17,8 @@ ScopedJavaLocalRef<jbyteArray> ToJavaByteArray(
|
| CheckException(env);
|
| DCHECK(byte_array);
|
|
|
| - jbyte* elements = env->GetByteArrayElements(byte_array, NULL);
|
| - memcpy(elements, bytes, len);
|
| - env->ReleaseByteArrayElements(byte_array, elements, 0);
|
| + env->SetByteArrayRegion(
|
| + byte_array, 0, len, reinterpret_cast<const jbyte*>(bytes));
|
| CheckException(env);
|
|
|
| return ScopedJavaLocalRef<jbyteArray>(env, byte_array);
|
| @@ -31,9 +30,8 @@ ScopedJavaLocalRef<jintArray> ToJavaIntArray(
|
| CheckException(env);
|
| DCHECK(int_array);
|
|
|
| - jint* elements = env->GetIntArrayElements(int_array, NULL);
|
| - memcpy(elements, ints, len * sizeof(*ints));
|
| - env->ReleaseIntArrayElements(int_array, elements, 0);
|
| + env->SetIntArrayRegion(
|
| + int_array, 0, len, reinterpret_cast<const jint*>(ints));
|
| CheckException(env);
|
|
|
| return ScopedJavaLocalRef<jintArray>(env, int_array);
|
| @@ -50,9 +48,8 @@ ScopedJavaLocalRef<jlongArray> ToJavaLongArray(
|
| CheckException(env);
|
| DCHECK(long_array);
|
|
|
| - jlong* elements = env->GetLongArrayElements(long_array, NULL);
|
| - memcpy(elements, longs, len * sizeof(*longs));
|
| - env->ReleaseLongArrayElements(long_array, elements, 0);
|
| + env->SetLongArrayRegion(
|
| + long_array, 0, len, reinterpret_cast<const jlong*>(longs));
|
| CheckException(env);
|
|
|
| return ScopedJavaLocalRef<jlongArray>(env, long_array);
|
|
|