diff options
| author | JosJuice <josjuice@gmail.com> | 2025-03-15 16:01:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-15 16:01:33 +0100 |
| commit | e637a05707b1b146a541da6525a431d42668f5fa (patch) | |
| tree | 8d5c9a0d4701f1c9940784133671ad58b88d55e1 /Source/Android/jni/MainAndroid.cpp | |
| parent | 1f087473aab780692784028f38c8665f9518ba6f (diff) | |
| parent | ea7928b3cda5749ba1dcc8e534b1474a28efb28a (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.cpp | 33 |
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*, |
