summaryrefslogtreecommitdiff
path: root/Source/Android/jni/MainAndroid.cpp
diff options
context:
space:
mode:
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 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*,