diff options
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 9fcf1b33a3..d1f23383fa 100644 --- a/Source/Android/jni/MainAndroid.cpp +++ b/Source/Android/jni/MainAndroid.cpp @@ -14,6 +14,7 @@ #include <string> #include <thread> #include <utility> +#include <vector> #include "Common/AndroidAnalytics.h" #include "Common/Assert.h" @@ -648,27 +649,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*, |
