Skip to content

Commit b9fd7bb

Browse files
SessionHero01SessionHero01
authored andcommitted
Tidy up
1 parent 93f4665 commit b9fd7bb

22 files changed

+382
-483
lines changed

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[versions]
2-
agp = "8.10.1"
3-
kotlin = "2.1.10"
2+
agp = "8.11.1"
3+
kotlin = "2.2.0"
44

55
[libraries]
66

library/src/main/cpp/blinded_key.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,11 @@ Java_network_loki_messenger_libsession_1util_util_BlindKeyAPI_blindVersionSignRe
4646
jstring path,
4747
jbyteArray body) {
4848
return jni_utils::run_catching_cxx_exception_or_throws<jbyteArray>(env, [=] {
49-
auto methodC = util::string_from_jstring(env, method);
50-
auto pathC = util::string_from_jstring(env, path);
51-
5249
auto bytes = session::blind_version_sign_request(
5350
jni_utils::JavaByteArrayRef(env, ed25519_secret_key).get(),
5451
timestamp,
55-
methodC,
56-
pathC,
52+
jni_utils::JavaStringRef(env, method).view(),
53+
jni_utils::JavaStringRef(env, path).view(),
5754
body ? std::make_optional(jni_utils::JavaByteArrayRef(env, body).get()) : std::nullopt
5855
);
5956
return util::bytes_from_vector(env, bytes);

library/src/main/cpp/config_base.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,8 @@ Java_network_loki_messenger_libsession_1util_ConfigBase_confirmPushed(JNIEnv *en
7575
std::unordered_set<std::string> hashes(hash_list_size);
7676

7777
for (int i = 0; i < hash_list_size; i++) {
78-
auto hash_jstring = jni_utils::JavaLocalRef(env, (jstring) env->GetObjectArrayElement(hash_list, i));
79-
auto hash = env->GetStringUTFChars(hash_jstring.get(), nullptr);
80-
hashes.insert(hash);
81-
env->ReleaseStringUTFChars(hash_jstring.get(), hash);
78+
jni_utils::JavaLocalRef hash_jstring(env, (jstring) env->GetObjectArrayElement(hash_list, i));
79+
hashes.insert(jni_utils::JavaStringRef(env, hash_jstring.get()).copy());
8280
}
8381

8482
conf->confirm_pushed(seq_no, hashes);

library/src/main/cpp/config_base.h

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "jni_utils.h"
77
#include <jni.h>
88
#include <string>
9+
#include <vector>
910

1011
inline session::config::ConfigBase* ptrToConfigBase(JNIEnv *env, jobject obj) {
1112
auto baseClass = jni_utils::JavaLocalRef(env, env->FindClass("network/loki/messenger/libsession_util/ConfigBase"));
@@ -17,13 +18,13 @@ inline std::pair<std::string, std::vector<unsigned char>> extractHashAndData(JNI
1718
auto pair = jni_utils::JavaLocalRef(env, env->FindClass("kotlin/Pair"));
1819
jfieldID first = env->GetFieldID(pair.get(), "first", "Ljava/lang/Object;");
1920
jfieldID second = env->GetFieldID(pair.get(), "second", "Ljava/lang/Object;");
20-
auto hash_as_jstring = jni_utils::JavaLocalRef(env, static_cast<jstring>(env->GetObjectField(kotlin_pair, first)));
21-
auto data_as_jbytes = jni_utils::JavaLocalRef(env, static_cast<jbyteArray>(env->GetObjectField(kotlin_pair, second)));
22-
auto hash_as_string = env->GetStringUTFChars(hash_as_jstring.get(), nullptr);
23-
auto data_as_vector = util::vector_from_bytes(env, data_as_jbytes.get());
24-
auto ret_pair = std::pair<std::string, std::vector<unsigned char>>{hash_as_string, data_as_vector};
25-
env->ReleaseStringUTFChars(hash_as_jstring.get(), hash_as_string);
26-
return ret_pair;
21+
auto hash_as_jstring = jni_utils::JavaLocalRef(env, reinterpret_cast<jstring>(env->GetObjectField(kotlin_pair, first)));
22+
auto data_as_jbytes = jni_utils::JavaLocalRef(env, reinterpret_cast<jbyteArray>(env->GetObjectField(kotlin_pair, second)));
23+
24+
return std::make_pair(
25+
std::string(jni_utils::JavaStringRef(env, hash_as_jstring.get()).view()),
26+
jni_utils::JavaByteArrayRef(env, data_as_jbytes.get()).copy()
27+
);
2728
}
2829

2930
inline session::config::ConfigSig* ptrToConfigSig(JNIEnv* env, jobject obj) {

library/src/main/cpp/config_common.cpp

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,24 @@ Java_network_loki_messenger_libsession_1util_ConfigKt_createConfigObject(
1616
jbyteArray ed25519_secret_key,
1717
jbyteArray initial_dump) {
1818
return jni_utils::run_catching_cxx_exception_or_throws<jlong>(env, [=] {
19-
auto config_name = util::string_from_jstring(env, java_config_name);
20-
auto secret_key = util::vector_from_bytes(env, ed25519_secret_key);
19+
jni_utils::JavaStringRef config_name(env, java_config_name);
20+
jni_utils::JavaByteArrayRef secret_key(env, ed25519_secret_key);
2121
auto initial = initial_dump
2222
? std::optional(util::vector_from_bytes(env, initial_dump))
2323
: std::nullopt;
2424

2525

2626
std::lock_guard lock{util::util_mutex_};
27-
if (config_name == "Contacts") {
28-
return reinterpret_cast<jlong>(new session::config::Contacts(secret_key, initial));
29-
} else if (config_name == "UserProfile") {
30-
return reinterpret_cast<jlong>(new session::config::UserProfile(secret_key, initial));
31-
} else if (config_name == "UserGroups") {
32-
return reinterpret_cast<jlong>(new session::config::UserGroups(secret_key, initial));
33-
} else if (config_name == "ConvoInfoVolatile") {
34-
return reinterpret_cast<jlong>(new session::config::ConvoInfoVolatile(secret_key, initial));
27+
if (config_name.view() == "Contacts") {
28+
return reinterpret_cast<jlong>(new session::config::Contacts(secret_key.get(), initial));
29+
} else if (config_name.view() == "UserProfile") {
30+
return reinterpret_cast<jlong>(new session::config::UserProfile(secret_key.get(), initial));
31+
} else if (config_name.view() == "UserGroups") {
32+
return reinterpret_cast<jlong>(new session::config::UserGroups(secret_key.get(), initial));
33+
} else if (config_name.view() == "ConvoInfoVolatile") {
34+
return reinterpret_cast<jlong>(new session::config::ConvoInfoVolatile(secret_key.get(), initial));
3535
} else {
36-
throw std::invalid_argument("Unknown config name: " + config_name);
36+
throw std::invalid_argument("Unknown config name: " + std::string(config_name.view()));
3737
}
3838
});
3939
}

library/src/main/cpp/contacts.cpp

Lines changed: 14 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_get(JNIEnv *env, jobject t
1717
[=]() -> jobject {
1818
std::lock_guard lock{util::util_mutex_};
1919
auto contacts = ptrToContacts(env, thiz);
20-
auto account_id_chars = env->GetStringUTFChars(account_id, nullptr);
21-
auto contact = contacts->get(account_id_chars);
22-
env->ReleaseStringUTFChars(account_id, account_id_chars);
20+
auto contact = contacts->get(jni_utils::JavaStringRef(env, account_id).view());
2321
if (!contact) return nullptr;
2422
jobject j_contact = serialize_contact(env, contact.value());
2523
return j_contact;
@@ -35,9 +33,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_getOrConstruct(JNIEnv *env
3533
return jni_utils::run_catching_cxx_exception_or_throws<jobject>(env, [=] {
3634
std::lock_guard lock{util::util_mutex_};
3735
auto contacts = ptrToContacts(env, thiz);
38-
auto account_id_chars = env->GetStringUTFChars(account_id, nullptr);
39-
auto contact = contacts->get_or_construct(account_id_chars);
40-
env->ReleaseStringUTFChars(account_id, account_id_chars);
36+
auto contact = contacts->get_or_construct(jni_utils::JavaStringRef(env, account_id).view());
4137
return serialize_contact(env, contact);
4238
});
4339
}
@@ -61,10 +57,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_erase(JNIEnv *env, jobject
6157
return jni_utils::run_catching_cxx_exception_or_throws<jboolean>(env, [=] {
6258
std::lock_guard lock{util::util_mutex_};
6359
auto contacts = ptrToContacts(env, thiz);
64-
auto account_id_chars = env->GetStringUTFChars(account_id, nullptr);
65-
66-
bool result = contacts->erase(account_id_chars);
67-
env->ReleaseStringUTFChars(account_id, account_id_chars);
60+
bool result = contacts->erase(jni_utils::JavaStringRef(env, account_id).view());
6861
return result;
6962
});
7063
}
@@ -152,8 +145,8 @@ jobject serialize_blinded_contact(JNIEnv *env, const session::config::blinded_co
152145
clazz.get(),
153146
constructor,
154147
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.session_id().c_str())).get(),
155-
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.comm.base_url().data())).get(),
156-
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.comm.pubkey_hex().data())).get(),
148+
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.community_base_url().data())).get(),
149+
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.community_pubkey_hex().data())).get(),
157150
jni_utils::JavaLocalRef(env, env->NewStringUTF(info.name.c_str())).get(),
158151
(jlong) (info.created.time_since_epoch().count()),
159152
jni_utils::JavaLocalRef(env, util::serialize_user_pic(env, info.profile_picture)).get()
@@ -164,15 +157,16 @@ session::config::blinded_contact_info deserialize_blinded_contact(JNIEnv *env, j
164157
jni_utils::JavaLocalRef<jclass> clazz(env, env->GetObjectClass(jInfo));
165158
auto idField = env->GetFieldID(clazz.get(), "id", "Ljava/lang/String;");
166159
auto communityServerField = env->GetFieldID(clazz.get(), "communityServer", "Ljava/lang/String;");
167-
auto communityPubkeyField = env->GetFieldID(clazz.get(), "communityServerPubKeyHex", "Ljava/lang/String;");
160+
auto getCommunityServerPubKey = env->GetMethodID(clazz.get(), "getCommunityServerPubKey", "()[B");
168161
auto nameField = env->GetFieldID(clazz.get(), "name", "Ljava/lang/String;");
169162
auto createdEpochSecondsField = env->GetFieldID(clazz.get(), "createdEpochSeconds", "J");
170163
auto profilePicField = env->GetFieldID(clazz.get(), "profilePic", "Lnetwork/loki/messenger/libsession_util/util/UserPic;");
171164

172-
session::config::blinded_contact_info info;
173-
info.set_base_url(jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, communityServerField)).view());
174-
info.set_pubkey(jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, communityPubkeyField)).view());
175-
info.set_room(jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, idField)).view());
165+
session::config::blinded_contact_info info(
166+
jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, communityServerField)).view(),
167+
jni_utils::JavaByteArrayRef(env, (jbyteArray) env->CallObjectMethod(jInfo, getCommunityServerPubKey)).get(),
168+
jni_utils::JavaStringRef(env, (jstring) env->GetObjectField(jInfo, idField)).view()
169+
);
176170
info.created = std::chrono::sys_seconds{std::chrono::seconds{env->GetLongField(jInfo, createdEpochSecondsField)}};
177171
info.profile_picture = util::deserialize_user_pic(env, jni_utils::JavaLocalRef(env, env->GetObjectField(jInfo, profilePicField)).get());
178172

@@ -189,8 +183,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_getOrConstructBlinded(JNIE
189183
return serialize_blinded_contact(env, ptrToContacts(env, thiz)->get_or_construct_blinded(
190184
jni_utils::JavaStringRef(env, community_server_url).view(),
191185
jni_utils::JavaStringRef(env, community_server_pub_key_hex).view(),
192-
jni_utils::JavaStringRef(env, blinded_id).view(),
193-
false
186+
jni_utils::JavaStringRef(env, blinded_id).view()
194187
));
195188
}
196189

@@ -210,8 +203,7 @@ Java_network_loki_messenger_libsession_1util_Contacts_eraseBlinded(JNIEnv *env,
210203
jstring blinded_id) {
211204
ptrToContacts(env, thiz)->erase_blinded(
212205
jni_utils::JavaStringRef(env, community_server_url).view(),
213-
jni_utils::JavaStringRef(env, blinded_id).view(),
214-
false,
206+
jni_utils::JavaStringRef(env, blinded_id).view()
215207
);
216208
}
217209

@@ -230,10 +222,7 @@ JNIEXPORT jobject JNICALL
230222
Java_network_loki_messenger_libsession_1util_Contacts_getBlinded(JNIEnv *env,
231223
jobject thiz,
232224
jstring blinded_id) {
233-
auto result = ptrToContacts(env, thiz)->get_blinded(
234-
jni_utils::JavaStringRef(env, blinded_id).view(),
235-
false
236-
);
225+
auto result = ptrToContacts(env, thiz)->get_blinded(jni_utils::JavaStringRef(env, blinded_id).view());
237226

238227
if (result) {
239228
return serialize_blinded_contact(env, *result);

0 commit comments

Comments
 (0)