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"); |