From b1ad4520665decddfbbd3df493f1549dd59e129a Mon Sep 17 00:00:00 2001 From: BreadFish64 Date: Mon, 4 May 2020 21:45:04 -0500 Subject: [PATCH] android: fix garbled names in the game list --- src/android/app/src/main/jni/game_info.cpp | 11 +++++------ src/android/app/src/main/jni/game_info.h | 4 ++-- src/android/app/src/main/jni/native.cpp | 16 ++-------------- 3 files changed, 9 insertions(+), 22 deletions(-) diff --git a/src/android/app/src/main/jni/game_info.cpp b/src/android/app/src/main/jni/game_info.cpp index 0af5c01ce..af9dc7974 100644 --- a/src/android/app/src/main/jni/game_info.cpp +++ b/src/android/app/src/main/jni/game_info.cpp @@ -51,32 +51,31 @@ std::vector GetSMDHData(std::string physical_name) { return smdh; } -char16_t* GetTitle(std::string physical_name) { +std::u16string GetTitle(std::string physical_name) { Loader::SMDH::TitleLanguage language = Loader::SMDH::TitleLanguage::English; std::vector smdh_data = GetSMDHData(physical_name); if (!Loader::IsValidSMDH(smdh_data)) { // SMDH is not valid, return null - return nullptr; + return {}; } Loader::SMDH smdh; memcpy(&smdh, smdh_data.data(), sizeof(Loader::SMDH)); // Get the title from SMDH in UTF-16 format - char16_t* title; - title = reinterpret_cast(smdh.titles[static_cast(language)].long_title.data()); + std::u16string title{reinterpret_cast(smdh.titles[static_cast(language)].long_title.data())}; return title; } -char16_t* GetPublisher(std::string physical_name) { +std::u16string GetPublisher(std::string physical_name) { Loader::SMDH::TitleLanguage language = Loader::SMDH::TitleLanguage::English; std::vector smdh_data = GetSMDHData(physical_name); if (!Loader::IsValidSMDH(smdh_data)) { // SMDH is not valid, return null - return nullptr; + return {}; } Loader::SMDH smdh; diff --git a/src/android/app/src/main/jni/game_info.h b/src/android/app/src/main/jni/game_info.h index dce523e50..ad3254aab 100644 --- a/src/android/app/src/main/jni/game_info.h +++ b/src/android/app/src/main/jni/game_info.h @@ -10,9 +10,9 @@ namespace GameInfo { std::vector GetSMDHData(std::string physical_name); -char16_t* GetTitle(std::string physical_name); +std::u16string GetTitle(std::string physical_name); -char16_t* GetPublisher(std::string physical_name); +std::u16string GetPublisher(std::string physical_name); std::string GetRegions(std::string physical_name); diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index 67d121eef..ae23af37a 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -345,13 +345,7 @@ jintArray Java_org_citra_citra_1emu_NativeLibrary_GetIcon(JNIEnv* env, jstring Java_org_citra_citra_1emu_NativeLibrary_GetTitle(JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_filename) { std::string filepath = GetJString(env, j_filename); - - char16_t* Title = GameInfo::GetTitle(filepath); - - if (!Title) { - return env->NewStringUTF(""); - } - + auto Title = GameInfo::GetTitle(filepath); return env->NewStringUTF(Common::UTF16ToUTF8(Title).data()); } @@ -381,13 +375,7 @@ jstring Java_org_citra_citra_1emu_NativeLibrary_GetCompany(JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_filename) { std::string filepath = GetJString(env, j_filename); - - char16_t* publisher = GameInfo::GetPublisher(filepath); - - if (!publisher) { - return nullptr; - } - + auto publisher = GameInfo::GetPublisher(filepath); return env->NewStringUTF(Common::UTF16ToUTF8(publisher).data()); }