diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-21 23:03:54 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2019-11-22 15:16:55 +0000 |
| commit | 90d7b463454095ad17bddb7c8eb2664646477b02 (patch) | |
| tree | 5a30d9514f62108c91a7b9af9eeeba3d31bdfefc | |
| parent | 6846021fcbcd1373c6f7fda8dc32fe68a4862c08 (diff) | |
| download | mullvadvpn-90d7b463454095ad17bddb7c8eb2664646477b02.tar.xz mullvadvpn-90d7b463454095ad17bddb7c8eb2664646477b02.zip | |
Use `jnix::IntoJava` for `Vec<T>`
| -rw-r--r-- | mullvad-jni/src/into_java.rs | 37 |
1 files changed, 4 insertions, 33 deletions
diff --git a/mullvad-jni/src/into_java.rs b/mullvad-jni/src/into_java.rs index a29ed53158..532a946f1f 100644 --- a/mullvad-jni/src/into_java.rs +++ b/mullvad-jni/src/into_java.rs @@ -1,9 +1,6 @@ use crate::daemon_interface; use jnix::{ - jni::{ - objects::{AutoLocal, JList, JObject, JValue}, - sys::jint, - }, + jni::objects::{AutoLocal, JObject, JValue}, JnixEnv, }; use mullvad_types::{ @@ -51,35 +48,9 @@ wrap_jnix_into_java!( wrap_jnix_into_java!(String); -impl<'borrow, 'env, T> IntoJava<'borrow, 'env> for Vec<T> -where - 'env: 'borrow, - T: IntoJava<'borrow, 'env, JavaType = AutoLocal<'env, 'borrow>>, -{ - type JavaType = AutoLocal<'env, 'borrow>; - - fn into_java(self, env: &'borrow JnixEnv<'env>) -> Self::JavaType { - let class = env.get_class("java/util/ArrayList"); - let initial_capacity = self.len(); - let parameters = [JValue::Int(initial_capacity as jint)]; - - let list_object = env - .new_object(&class, "(I)V", ¶meters) - .expect("Failed to create ArrayList object"); - - let list = - JList::from_env(env, list_object).expect("Failed to create JList from ArrayList"); - - for element in self { - let java_element = element.into_java(env); - - list.add(java_element.as_obj()) - .expect("Failed to add element to ArrayList"); - } - - env.auto_local(list_object) - } -} +wrap_jnix_into_java!( + Vec<T> where T: jnix::IntoJava<'borrow, 'env, JavaType = AutoLocal<'env, 'borrow>> +); impl<'array, 'borrow, 'env> IntoJava<'borrow, 'env> for &'array [u8] where |
