| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/android/jni_array.h" | 5 #include "base/android/jni_array.h" |
| 6 | 6 |
| 7 #include "base/android/jni_android.h" | 7 #include "base/android/jni_android.h" |
| 8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 | 10 |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 CheckException(env); | 60 CheckException(env); |
| 61 | 61 |
| 62 for (size_t i = 0; i < v.size(); ++i) { | 62 for (size_t i = 0; i < v.size(); ++i) { |
| 63 ScopedJavaLocalRef<jstring> item = ConvertUTF16ToJavaString(env, v[i]); | 63 ScopedJavaLocalRef<jstring> item = ConvertUTF16ToJavaString(env, v[i]); |
| 64 env->SetObjectArrayElement(joa, i, item.obj()); | 64 env->SetObjectArrayElement(joa, i, item.obj()); |
| 65 } | 65 } |
| 66 return ScopedJavaLocalRef<jobjectArray>(env, joa); | 66 return ScopedJavaLocalRef<jobjectArray>(env, joa); |
| 67 } | 67 } |
| 68 | 68 |
| 69 void AppendJavaStringArrayToStringVector(JNIEnv* env, | 69 void AppendJavaStringArrayToStringVector(JNIEnv* env, |
| 70 const JavaRef<jobjectArray>& array, | 70 jobjectArray array, |
| 71 std::vector<string16>* out) { | 71 std::vector<string16>* out) { |
| 72 DCHECK(out); | 72 DCHECK(out); |
| 73 if (array.is_null()) | 73 if (!array) |
| 74 return; | 74 return; |
| 75 jsize len = env->GetArrayLength(array.obj()); | 75 jsize len = env->GetArrayLength(array); |
| 76 for (jsize i = 0; i < len; ++i) { | 76 for (jsize i = 0; i < len; ++i) { |
| 77 ScopedJavaLocalRef<jstring> str(env, | 77 ScopedJavaLocalRef<jstring> str(env, |
| 78 static_cast<jstring>(env->GetObjectArrayElement(array.obj(), i))); | 78 static_cast<jstring>(env->GetObjectArrayElement(array, i))); |
| 79 out->push_back(ConvertJavaStringToUTF16(str)); | 79 out->push_back(ConvertJavaStringToUTF16(str)); |
| 80 } | 80 } |
| 81 } | 81 } |
| 82 | 82 |
| 83 void AppendJavaByteArrayToByteVector(JNIEnv* env, | 83 void AppendJavaByteArrayToByteVector(JNIEnv* env, |
| 84 jbyteArray byte_array, | 84 jbyteArray byte_array, |
| 85 std::vector<uint8>* out) { | 85 std::vector<uint8>* out) { |
| 86 DCHECK(out); | 86 DCHECK(out); |
| 87 if (!byte_array) | 87 if (!byte_array) |
| 88 return; | 88 return; |
| 89 jsize len = env->GetArrayLength(byte_array); | 89 jsize len = env->GetArrayLength(byte_array); |
| 90 jbyte* bytes = env->GetByteArrayElements(byte_array, NULL); | 90 jbyte* bytes = env->GetByteArrayElements(byte_array, NULL); |
| 91 out->insert(out->end(), bytes, bytes + len); | 91 out->insert(out->end(), bytes, bytes + len); |
| 92 env->ReleaseByteArrayElements(byte_array, bytes, JNI_ABORT); | 92 env->ReleaseByteArrayElements(byte_array, bytes, JNI_ABORT); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void JavaByteArrayToByteVector(JNIEnv* env, | 95 void JavaByteArrayToByteVector(JNIEnv* env, |
| 96 jbyteArray byte_array, | 96 jbyteArray byte_array, |
| 97 std::vector<uint8>* out) { | 97 std::vector<uint8>* out) { |
| 98 DCHECK(out); | 98 DCHECK(out); |
| 99 out->clear(); | 99 out->clear(); |
| 100 AppendJavaByteArrayToByteVector(env, byte_array, out); | 100 AppendJavaByteArrayToByteVector(env, byte_array, out); |
| 101 } | 101 } |
| 102 | 102 |
| 103 } // namespace android | 103 } // namespace android |
| 104 } // namespace base | 104 } // namespace base |
| OLD | NEW |