mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-04-27 23:08:47 +00:00
Android: Replace log type names map with array
Storing the log type names in a map results in them getting re-sorted by their keys, which doesn't quite give us the sorting we want. In particular, the Achievements category ended up being sorted at R (for RetroAchivements) instead of at A. Every use of the map is just iterating through it, so there's no real reason why it has to be a map anyway.
This commit is contained in:
parent
04c246d11f
commit
ea7928b3cd
7 changed files with 49 additions and 57 deletions
|
@ -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*,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue