summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2018-12-05 17:58:11 -0500
committerGravatar Lioncash2018-12-05 17:58:15 -0500
commit01bf329f63446d6dee4e88d75b827970eea037f6 (patch)
tree5dc2da92771a89e346aad3e99014b0310523a73d
parentyuzu/game_list_worker: Don't retrieve file type and file type strings twice i... (diff)
downloadyuzu-01bf329f63446d6dee4e88d75b827970eea037f6.tar.gz
yuzu-01bf329f63446d6dee4e88d75b827970eea037f6.tar.xz
yuzu-01bf329f63446d6dee4e88d75b827970eea037f6.zip
yuzu/game_list_worker: Don't retrieve the file type twice in AddFstEntriesToGameList()
Similarly, here we can avoid doing unnecessary work twice by retrieving the file type only once and comparing it against relevant operands, avoiding potential unnecessary object construction/destruction.
-rw-r--r--src/yuzu/game_list_worker.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp
index f16a6e41c..20f5e8798 100644
--- a/src/yuzu/game_list_worker.cpp
+++ b/src/yuzu/game_list_worker.cpp
@@ -198,12 +198,16 @@ void GameListWorker::AddFstEntriesToGameList(const std::string& dir_path, unsign
198 const bool is_dir = FileUtil::IsDirectory(physical_name); 198 const bool is_dir = FileUtil::IsDirectory(physical_name);
199 if (!is_dir && 199 if (!is_dir &&
200 (HasSupportedFileExtension(physical_name) || IsExtractedNCAMain(physical_name))) { 200 (HasSupportedFileExtension(physical_name) || IsExtractedNCAMain(physical_name))) {
201 std::unique_ptr<Loader::AppLoader> loader = 201 auto loader = Loader::GetLoader(vfs->OpenFile(physical_name, FileSys::Mode::Read));
202 Loader::GetLoader(vfs->OpenFile(physical_name, FileSys::Mode::Read)); 202 if (!loader) {
203 if (!loader || ((loader->GetFileType() == Loader::FileType::Unknown ||
204 loader->GetFileType() == Loader::FileType::Error) &&
205 !UISettings::values.show_unknown))
206 return true; 203 return true;
204 }
205
206 const auto file_type = loader->GetFileType();
207 if ((file_type == Loader::FileType::Unknown || file_type == Loader::FileType::Error) &&
208 !UISettings::values.show_unknown) {
209 return true;
210 }
207 211
208 std::vector<u8> icon; 212 std::vector<u8> icon;
209 const auto res1 = loader->ReadIcon(icon); 213 const auto res1 = loader->ReadIcon(icon);