Chromium Code Reviews| Index: base/android/jni_array.cc |
| diff --git a/base/android/jni_array.cc b/base/android/jni_array.cc |
| index fe2aadb745c087386bf01512108a2c6235c1d3d8..8236e5da312eaec1a3cb904e7668e69d0c78e48f 100644 |
| --- a/base/android/jni_array.cc |
| +++ b/base/android/jni_array.cc |
| @@ -25,6 +25,20 @@ ScopedJavaLocalRef<jbyteArray> ToJavaByteArray( |
| return ScopedJavaLocalRef<jbyteArray>(env, byte_array); |
| } |
| +ScopedJavaLocalRef<jlongArray> ToJavaLongArray( |
| + JNIEnv* env, const int64* longs, size_t len) { |
|
mkosiba (inactive)
2013/02/20 12:21:38
I know the function above uses a raw C-style array
boliu
2013/02/20 20:14:16
Overloaded the method with a vector version and up
|
| + jlongArray long_array = env->NewLongArray(len); |
| + CheckException(env); |
| + DCHECK(long_array); |
| + |
| + jlong* elements = env->GetLongArrayElements(long_array, NULL); |
| + memcpy(elements, longs, len * sizeof(*longs)); |
|
mkosiba (inactive)
2013/02/20 12:21:38
I can't remember what the exact issue was but one
boliu
2013/02/20 20:14:16
I remember in one of the effective c++ books, the
|
| + env->ReleaseLongArrayElements(long_array, elements, 0); |
| + CheckException(env); |
| + |
| + return ScopedJavaLocalRef<jlongArray>(env, long_array); |
| +} |
| + |
| ScopedJavaLocalRef<jobjectArray> ToJavaArrayOfByteArray( |
| JNIEnv* env, const std::vector<std::string>& v) { |
| ScopedJavaLocalRef<jclass> byte_array_clazz = GetClass(env, "[B"); |