@@ -35,7 +35,7 @@ namespace util {
3535 return {};
3636 }
3737
38- return jni_utils:: JavaByteArrayRef (env, byteArray).copy ();
38+ return JavaByteArrayRef (env, byteArray).copy ();
3939 }
4040
4141 JavaLocalRef<jbyteArray> bytes_from_span (JNIEnv* env, std::span<const unsigned char > from_str) {
@@ -47,40 +47,52 @@ namespace util {
4747 }
4848
4949 JavaLocalRef<jobject> serialize_user_pic (JNIEnv *env, session::config::profile_pic pic) {
50- static jni_utils:: BasicJavaClassInfo class_info (
50+ static BasicJavaClassInfo class_info (
5151 env, " network/loki/messenger/libsession_util/util/UserPic" ,
5252 " (Ljava/lang/String;Lnetwork/loki/messenger/libsession_util/util/Bytes;)V"
5353 );
5454
5555 return {env, env->NewObject (class_info.java_class , class_info.constructor ,
56- jni_utils:: JavaLocalRef (env, env->NewStringUTF (pic.url .data ())).get (),
57- jni_utils:: session_bytes_from_range (env, pic.key ).get ()
56+ JavaLocalRef (env, env->NewStringUTF (pic.url .data ())).get (),
57+ session_bytes_from_range (env, pic.key ).get ()
5858 )};
5959 }
6060
6161
6262 session::config::profile_pic deserialize_user_pic (JNIEnv *env, jobject user_pic) {
63- jni_utils::JavaLocalRef clazz (env, env->GetObjectClass (user_pic));
63+ struct ClassInfo : public JavaClassInfo {
64+ jmethodID url_getter;
65+ jmethodID key_getter;
66+
67+ ClassInfo (JNIEnv *env, jobject obj)
68+ : JavaClassInfo(env, obj)
69+ , url_getter(env->GetMethodID (java_class, " getUrl" , " ()Ljava/lang/String;" ))
70+ , key_getter(env->GetMethodID (java_class, " getKeyAsByteArray" , " ()[B" ))
71+ {}
72+ };
73+
74+ static ClassInfo class_info (env, user_pic);
75+
6476 return {
65- jni_utils:: JavaStringRef (env, (jstring) (env->CallObjectMethod (user_pic, env-> GetMethodID (clazz. get (), " getUrl " , " ()Ljava/lang/String; " ) ))).view (),
66- util::vector_from_bytes (env, static_cast <jbyteArray>(env->CallObjectMethod (user_pic, env-> GetMethodID (clazz. get (), " getKeyAsByteArray " , " ()[B " ) )))
77+ JavaStringRef (env, (jstring) (env->CallObjectMethod (user_pic, class_info. url_getter ))).view (),
78+ util::vector_from_bytes (env, static_cast <jbyteArray>(env->CallObjectMethod (user_pic, class_info. key_getter )))
6779 };
6880 }
6981
7082 JavaLocalRef<jobject> serialize_expiry (JNIEnv *env, const session::config::expiration_mode& mode, const std::chrono::seconds& time_seconds) {
7183 if (mode == session::config::expiration_mode::none) {
72- auto none = jni_utils:: JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$NONE" ));
84+ auto none = JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$NONE" ));
7385 jfieldID none_instance = env->GetStaticFieldID (none.get (), " INSTANCE" , " Lnetwork/loki/messenger/libsession_util/util/ExpiryMode$NONE;" );
7486
7587 return {env, env->GetStaticObjectField (none.get (), none_instance)};
7688 } else if (mode == session::config::expiration_mode::after_send) {
77- static jni_utils:: BasicJavaClassInfo class_info (
89+ static BasicJavaClassInfo class_info (
7890 env, " network/loki/messenger/libsession_util/util/ExpiryMode$AfterSend" ,
7991 " (J)V"
8092 );
8193 return {env, env->NewObject (class_info.java_class , class_info.constructor , time_seconds.count ())};
8294 } else if (mode == session::config::expiration_mode::after_read) {
83- static jni_utils:: BasicJavaClassInfo class_info (
95+ static BasicJavaClassInfo class_info (
8496 env, " network/loki/messenger/libsession_util/util/ExpiryMode$AfterRead" ,
8597 " (J)V"
8698 );
@@ -90,12 +102,12 @@ namespace util {
90102 }
91103
92104 std::pair<session::config::expiration_mode, long > deserialize_expiry (JNIEnv *env, jobject expiry_mode) {
93- auto parent = jni_utils:: JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode" ));
94- auto after_read = jni_utils:: JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$AfterRead" ));
95- auto after_send = jni_utils:: JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$AfterSend" ));
105+ auto parent = JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode" ));
106+ auto after_read = JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$AfterRead" ));
107+ auto after_send = JavaLocalRef (env, env->FindClass (" network/loki/messenger/libsession_util/util/ExpiryMode$AfterSend" ));
96108 jfieldID duration_seconds = env->GetFieldID (parent.get (), " expirySeconds" , " J" );
97109
98- auto object_class = jni_utils:: JavaLocalRef (env, env->GetObjectClass (expiry_mode));
110+ auto object_class = JavaLocalRef (env, env->GetObjectClass (expiry_mode));
99111
100112 if (env->IsSameObject (object_class.get (), after_read.get ())) {
101113 return std::pair (session::config::expiration_mode::after_read, env->GetLongField (expiry_mode, duration_seconds));
@@ -112,7 +124,7 @@ namespace util {
112124 return {env, nullptr };
113125 }
114126
115- static jni_utils:: BasicJavaClassInfo class_info (
127+ static BasicJavaClassInfo class_info (
116128 env, " java/lang/Long" ,
117129 " (J)V"
118130 );
@@ -136,11 +148,11 @@ Java_network_loki_messenger_libsession_1util_util_MultiEncrypt_encryptForMultipl
136148 std::vector<std::vector<unsigned char >> message_vec{};
137149 std::vector<std::vector<unsigned char >> recipient_vec{};
138150 for (int i = 0 ; i < size; i++) {
139- jni_utils:: JavaLocalRef message_j (env, static_cast <jbyteArray>(env->GetObjectArrayElement (messages, i)));
140- jni_utils:: JavaLocalRef recipient_j (env, static_cast <jbyteArray>(env->GetObjectArrayElement (recipients, i)));
151+ JavaLocalRef message_j (env, static_cast <jbyteArray>(env->GetObjectArrayElement (messages, i)));
152+ JavaLocalRef recipient_j (env, static_cast <jbyteArray>(env->GetObjectArrayElement (recipients, i)));
141153
142- message_vec.emplace_back (jni_utils:: JavaByteArrayRef (env, message_j.get ()).copy ());
143- recipient_vec.emplace_back (jni_utils:: JavaByteArrayRef (env, recipient_j.get ()).copy ());
154+ message_vec.emplace_back (JavaByteArrayRef (env, message_j.get ()).copy ());
155+ recipient_vec.emplace_back (JavaByteArrayRef (env, recipient_j.get ()).copy ());
144156 }
145157
146158 std::vector<std::span<const unsigned char >> message_sv_vec{};
@@ -156,8 +168,8 @@ Java_network_loki_messenger_libsession_1util_util_MultiEncrypt_encryptForMultipl
156168 auto result = session::encrypt_for_multiple_simple (
157169 message_sv_vec,
158170 recipient_sv_vec,
159- jni_utils:: JavaByteArrayRef (env, ed25519_secret_key).get (),
160- jni_utils:: JavaStringRef (env, domain).view (),
171+ JavaByteArrayRef (env, ed25519_secret_key).get (),
172+ JavaStringRef (env, domain).view (),
161173 std::span<const unsigned char > {random_nonce.data (), 24 }
162174 );
163175
@@ -173,10 +185,10 @@ Java_network_loki_messenger_libsession_1util_util_MultiEncrypt_decryptForMultipl
173185 jbyteArray sender_pub_key,
174186 jstring domain) {
175187 auto result = session::decrypt_for_multiple_simple (
176- jni_utils:: JavaByteArrayRef (env, encoded).get (),
177- jni_utils:: JavaByteArrayRef (env, secret_key).get (),
178- jni_utils:: JavaByteArrayRef (env, sender_pub_key).get (),
179- jni_utils:: JavaStringRef (env, domain).view ()
188+ JavaByteArrayRef (env, encoded).get (),
189+ JavaByteArrayRef (env, secret_key).get (),
190+ JavaByteArrayRef (env, sender_pub_key).get (),
191+ JavaStringRef (env, domain).view ()
180192 );
181193
182194 if (result) {
@@ -191,7 +203,7 @@ extern "C"
191203JNIEXPORT jobject JNICALL
192204Java_network_loki_messenger_libsession_1util_util_BaseCommunityInfo_00024Companion_parseFullUrl (
193205 JNIEnv *env, jobject thiz, jstring full_url) {
194- auto [base, room, pk] = session::config::community::parse_full_url (jni_utils:: JavaStringRef (env, full_url).view ());
206+ auto [base, room, pk] = session::config::community::parse_full_url (JavaStringRef (env, full_url).view ());
195207
196208 jclass clazz = env->FindClass (" kotlin/Triple" );
197209 jmethodID constructor = env->GetMethodID (clazz, " <init>" , " (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V" );
@@ -296,8 +308,8 @@ Java_network_loki_messenger_libsession_1util_util_Util_lengthForCodepoints(JNIEn
296308 jobject thiz,
297309 jstring str,
298310 jint max_codepoints) {
299- return jni_utils:: run_catching_cxx_exception_or_throws<jint>(env, [=]() {
300- jni_utils:: JavaCharsRef str_ref (env, str);
311+ return run_catching_cxx_exception_or_throws<jint>(env, [=]() {
312+ JavaCharsRef str_ref (env, str);
301313 return session::utf16_count_truncated_to_codepoints (
302314 {reinterpret_cast <const char16_t *>(str_ref.chars ()), str_ref.size ()},
303315 max_codepoints
@@ -309,6 +321,6 @@ extern "C"
309321JNIEXPORT jint JNICALL
310322Java_network_loki_messenger_libsession_1util_util_Util_countCodepoints (JNIEnv *env, jobject thiz,
311323 jstring str) {
312- jni_utils:: JavaCharsRef str_ref (env, str);
324+ JavaCharsRef str_ref (env, str);
313325 return session::utf16_count ({reinterpret_cast <const char16_t *>(str_ref.chars ()), str_ref.size ()});
314326}
0 commit comments