From d002928a389fddca605fd4c33cfa7b7b36b0a7fa Mon Sep 17 00:00:00 2001 From: Pengfei Date: Mon, 12 Jul 2021 12:14:00 +0800 Subject: [PATCH] Fix LGTM alerts --- src/core/data_container.cpp | 3 ++- src/core/inner_fat.hpp | 16 ++++++++-------- src/frontend/helpers/multi_job.h | 3 ++- src/frontend/import_dialog.cpp | 28 ++++++++++++++-------------- 4 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/core/data_container.cpp b/src/core/data_container.cpp index 11c2ede..7d18819 100644 --- a/src/core/data_container.cpp +++ b/src/core/data_container.cpp @@ -11,7 +11,8 @@ namespace Core { DPFSContainer::DPFSContainer(DPFSDescriptor descriptor_, u8 level1_selector_, std::vector data_) - : descriptor(descriptor_), level1_selector(level1_selector_), data(std::move(data_)) { + : descriptor(std::move(descriptor_)), level1_selector(level1_selector_), + data(std::move(data_)) { ASSERT_MSG(descriptor.magic == MakeMagic('D', 'P', 'F', 'S'), "DPFS Magic is not correct"); ASSERT_MSG(descriptor.version == 0x10000, "DPFS Version is not correct"); diff --git a/src/core/inner_fat.hpp b/src/core/inner_fat.hpp index df17ed7..ac068be 100644 --- a/src/core/inner_fat.hpp +++ b/src/core/inner_fat.hpp @@ -245,12 +245,13 @@ protected: last_block = fat[block + 2].v.index - 1; } - const std::size_t size = + // offset & size of the data chunk represented by the FAT node + const auto offset = static_cast(fs_info.data_region_block_size) * block; + const auto size = static_cast(fs_info.data_region_block_size) * (last_block - block + 1); - const std::size_t to_write = std::min(file_size, size); - TRY(CheckedMemcpy(out.data() + written, data_region, - fs_info.data_region_block_size * block, to_write), + const auto to_write = std::min(file_size, size); + TRY(CheckedMemcpy(out.data() + written, data_region, offset, to_write), LOG_ERROR(Core, "File data out of bound")); file_size -= to_write; written += to_write; @@ -301,7 +302,7 @@ public: std::array name_data = {}; // Append a null terminator std::memcpy(name_data.data(), entry.name.data(), entry.name.size()); - std::string name = name_data.data(); + const std::string name = name_data.data(); std::string new_path = name.empty() ? path : path + name + "/"; // Name is empty for root if (!FileUtil::CreateFullPath(new_path)) { @@ -317,13 +318,12 @@ public: return false; } const auto& file_entry = this->file_entry_table[cur]; - - std::array name_data = {}; // Append a null terminator std::memcpy(name_data.data(), file_entry.name.data(), file_entry.name.size()); if (!static_cast(this)->ExtractFile(new_path + std::string{name_data.data()}, - cur)) + cur)) { return false; + } cur = this->file_entry_table[cur].next_sibling_index; } diff --git a/src/frontend/helpers/multi_job.h b/src/frontend/helpers/multi_job.h index d4ce957..80c318c 100644 --- a/src/frontend/helpers/multi_job.h +++ b/src/frontend/helpers/multi_job.h @@ -39,7 +39,8 @@ signals: void ProgressUpdated(u64 total_size_imported, u64 current_size_imported, int eta); /// Dumping of a content has been finished, go on to the next. Called at start as well. - void NextContent(u64 size_imported, u64 count, Core::ContentSpecifier next_content, int eta); + void NextContent(u64 size_imported, u64 count, const Core::ContentSpecifier& next_content, + int eta); void Completed(); diff --git a/src/frontend/import_dialog.cpp b/src/frontend/import_dialog.cpp index 09e70f5..3c7ed06 100644 --- a/src/frontend/import_dialog.cpp +++ b/src/frontend/import_dialog.cpp @@ -601,20 +601,20 @@ void ImportDialog::RunMultiJob(MultiJob* job, std::size_t total_count, u64 total dialog->setWindowModality(Qt::WindowModal); dialog->setMinimumDuration(0); - connect( - job, &MultiJob::NextContent, this, - [this, bar, dialog, multiplier, total_count](u64 size_imported, u64 count, - Core::ContentSpecifier next_content, int eta) { - bar->setValue(static_cast(size_imported / multiplier)); - dialog->setLabelText(tr("

(%1/%2) %3 (%4)

 

%5

") - .arg(count) - .arg(total_count) - .arg(GetContentName(next_content)) - .arg(GetContentTypeName(next_content.type)) - .arg(FormatETA(eta))); - current_content = next_content; - current_count = count; - }); + connect(job, &MultiJob::NextContent, this, + [this, bar, dialog, multiplier, total_count]( + u64 size_imported, u64 count, const Core::ContentSpecifier& next_content, int eta) { + bar->setValue(static_cast(size_imported / multiplier)); + dialog->setLabelText( + tr("

(%1/%2) %3 (%4)

 

%5

") + .arg(count) + .arg(total_count) + .arg(GetContentName(next_content)) + .arg(GetContentTypeName(next_content.type)) + .arg(FormatETA(eta))); + current_content = next_content; + current_count = count; + }); connect(job, &MultiJob::ProgressUpdated, this, [this, bar, dialog, multiplier, total_count](u64 total_size_imported, u64 current_size_imported, int eta) {