summaryrefslogtreecommitdiff
path: root/Source/Android/jni/MainAndroid.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2025-03-15 16:01:33 +0100
committerGitHub <noreply@github.com>2025-03-15 16:01:33 +0100
commite637a05707b1b146a541da6525a431d42668f5fa (patch)
tree8d5c9a0d4701f1c9940784133671ad58b88d55e1 /Source/Android/jni/MainAndroid.cpp
parent1f087473aab780692784028f38c8665f9518ba6f (diff)
parentea7928b3cda5749ba1dcc8e534b1474a28efb28a (diff)
Merge pull request #12866 from JosJuice/android-log-types-sorting
Android: Replace log type names map with array
Diffstat (limited to 'Source/Android/jni/MainAndroid.cpp')
-rw-r--r--Source/Android/jni/MainAndroid.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/Source/Android/jni/MainAndroid.cpp b/Source/Android/jni/MainAndroid.cpp
index 00b1b5db61..be1d168730 100644
--- a/Source/Android/jni/MainAndroid.cpp
+++ b/Source/Android/jni/MainAndroid.cpp
@@ -10,6 +10,7 @@
#include <string>
#include <thread>
#include <utility>
+#include <vector>
#include <EGL/egl.h>
#include <android/log.h>
@@ -691,27 +692,25 @@ JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_ChangeDisc(J
system.GetDVDInterface().ChangeDisc(Core::CPUThreadGuard{system}, path);
}
-JNIEXPORT jobject JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames(JNIEnv* env,
- jclass)
+JNIEXPORT jobjectArray JNICALL
+Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames(JNIEnv* env, jclass)
{
- std::map<std::string, std::string> map = Common::Log::LogManager::GetInstance()->GetLogTypes();
+ using LogManager = Common::Log::LogManager;
- auto map_size = static_cast<jsize>(map.size());
- jobject linked_hash_map =
- env->NewObject(IDCache::GetLinkedHashMapClass(), IDCache::GetLinkedHashMapInit(), map_size);
- for (const auto& entry : map)
- {
- jstring key = ToJString(env, entry.first);
- jstring value = ToJString(env, entry.second);
+ return VectorToJObjectArray(
+ env, LogManager::GetInstance()->GetLogTypes(), IDCache::GetPairClass(),
+ [](JNIEnv* env_, const LogManager::LogContainer& log_container) {
+ jstring short_name = ToJString(env_, log_container.m_short_name);
+ jstring full_name = ToJString(env_, log_container.m_full_name);
- jobject result =
- env->CallObjectMethod(linked_hash_map, IDCache::GetLinkedHashMapPut(), key, value);
+ jobject pair = env_->NewObject(IDCache::GetPairClass(), IDCache::GetPairConstructor(),
+ short_name, full_name);
- env->DeleteLocalRef(key);
- env->DeleteLocalRef(value);
- env->DeleteLocalRef(result);
- }
- return linked_hash_map;
+ env_->DeleteLocalRef(short_name);
+ env_->DeleteLocalRef(full_name);
+
+ return pair;
+ });
}
JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_NativeLibrary_ReloadLoggerConfig(JNIEnv*,