Using reserve() for optimization inserts, marked unused pair items and minor code refactor

Cette révision appartient à :
Herman Semenov 2024-04-12 15:42:47 +03:00 révisé par Crimson-Hawk
Parent 6e224957ef
révision a29e338273
27 fichiers modifiés avec 43 ajouts et 32 suppressions

Voir le fichier

@ -54,7 +54,8 @@ public:
const s32 to_register{std::min(std::min(appended_count, BufferAppendLimit),
BufferAppendLimit - registered_count)};
for (s32 i = 0; i < to_register; i++) {
out_buffers.reserve(to_register);
for (s32 i = 0; i < to_register; ++i) {
s32 index{appended_index - appended_count};
if (index < 0) {
index += N;
@ -180,6 +181,7 @@ public:
return 0;
}
buffers_flushed.reserve(registered_count + appended_count);
while (registered_count > 0) {
auto index{registered_index - registered_count};
if (index < 0) {

Voir le fichier

@ -80,6 +80,7 @@ FileSys::VirtualFile GetGameFileFromPath(const FileSys::VirtualFilesystem& vfs,
if (filename == "00") {
const auto dir = vfs->OpenDirectory(dir_name, FileSys::OpenMode::Read);
std::vector<FileSys::VirtualFile> concat;
concat.reserve(0x10);
for (u32 i = 0; i < 0x10; ++i) {
const auto file_name = fmt::format("{:02X}", i);

Voir le fichier

@ -481,6 +481,7 @@ void GDBStub::HandleQuery(std::string_view command) {
// beginning of list
const auto& threads = GetProcess()->GetThreadList();
std::vector<std::string> thread_ids;
thread_ids.reserve(threads.size());
for (const auto& thread : threads) {
thread_ids.push_back(fmt::format("{:x}", thread.GetThreadId()));
}

Voir le fichier

@ -261,7 +261,7 @@ std::vector<NcaID> PlaceholderCache::List() const {
std::vector<NcaID> out;
for (const auto& sdir : dir->GetSubdirectories()) {
for (const auto& file : sdir->GetFiles()) {
const auto name = file->GetName();
const auto& name = file->GetName();
if (name.length() == 36 && name.ends_with(".nca")) {
out.push_back(Common::HexStringToArray<0x10>(name.substr(0, 32)));
}

Voir le fichier

@ -117,7 +117,9 @@ std::vector<std::shared_ptr<NCA>> NSP::GetNCAsCollapsed() const {
if (extracted)
LOG_WARNING(Service_FS, "called on an NSP that is of type extracted.");
std::vector<std::shared_ptr<NCA>> out;
out.reserve(ncas.size());
for (const auto& map : ncas) {
out.reserve(map.second.size());
for (const auto& inner_map : map.second)
out.push_back(inner_map.second);
}

Voir le fichier

@ -24,7 +24,7 @@ constexpr std::array<u8, 30> WORD_TXT{
VirtualDir NgWord1() {
std::vector<VirtualFile> files;
files.reserve(NgWord1Data::NUMBER_WORD_TXT_FILES);
files.reserve(files.size() + 2);
for (std::size_t i = 0; i < files.size(); ++i) {
files.push_back(MakeArrayFile(NgWord1Data::WORD_TXT, fmt::format("{}.txt", i)));
@ -54,7 +54,7 @@ constexpr std::array<u8, 0x2C> AC_NX_DATA{
VirtualDir NgWord2() {
std::vector<VirtualFile> files;
files.reserve(NgWord2Data::NUMBER_AC_NX_FILES * 3);
files.reserve(NgWord2Data::NUMBER_AC_NX_FILES + 4);
for (std::size_t i = 0; i < NgWord2Data::NUMBER_AC_NX_FILES; ++i) {
files.push_back(MakeArrayFile(NgWord2Data::AC_NX_DATA, fmt::format("ac_{}_b1_nx", i)));

Voir le fichier

@ -37,6 +37,7 @@ const static std::map<std::string, const std::map<const char*, const std::vector
static void GenerateFiles(std::vector<VirtualFile>& directory,
const std::map<const char*, const std::vector<u8>>& files) {
directory.reserve(files.size());
for (const auto& [filename, data] : files) {
const auto data_copy{data};
const std::string filename_copy{filename};
@ -54,6 +55,7 @@ static std::vector<VirtualFile> GenerateZoneinfoFiles() {
VirtualDir TimeZoneBinary() {
std::vector<VirtualDir> america_sub_dirs;
america_sub_dirs.reserve(tzdb_america_dirs.size());
for (const auto& [dir_name, files] : tzdb_america_dirs) {
std::vector<VirtualFile> vfs_files;
GenerateFiles(vfs_files, files);
@ -62,6 +64,7 @@ VirtualDir TimeZoneBinary() {
}
std::vector<VirtualDir> zoneinfo_sub_dirs;
zoneinfo_sub_dirs.reserve(tzdb_zoneinfo_dirs.size());
for (const auto& [dir_name, files] : tzdb_zoneinfo_dirs) {
std::vector<VirtualFile> vfs_files;
GenerateFiles(vfs_files, files);

Voir le fichier

@ -38,7 +38,8 @@ VirtualDir CachedVfsDirectory::GetSubdirectory(std::string_view dir_name) const
std::vector<VirtualFile> CachedVfsDirectory::GetFiles() const {
std::vector<VirtualFile> out;
for (auto& [file_name, file] : files) {
out.reserve(files.size());
for (const auto& [_, file] : files) {
out.push_back(file);
}
return out;
@ -46,7 +47,8 @@ std::vector<VirtualFile> CachedVfsDirectory::GetFiles() const {
std::vector<VirtualDir> CachedVfsDirectory::GetSubdirectories() const {
std::vector<VirtualDir> out;
for (auto& [dir_name, dir] : dirs) {
out.reserve(dirs.size());
for (auto& [_, dir] : dirs) {
out.push_back(dir);
}
return out;

Voir le fichier

@ -121,7 +121,7 @@ void WindowSystem::RequestAppletVisibilityState(Applet& applet, bool visible) {
void WindowSystem::OnOperationModeChanged() {
std::scoped_lock lk{m_lock};
for (const auto& [aruid, applet] : m_applets) {
for (const auto& [_, applet] : m_applets) {
std::scoped_lock lk2{applet->lock};
applet->lifecycle_manager.OnOperationAndPerformanceModeChanged();
}
@ -130,7 +130,7 @@ void WindowSystem::OnOperationModeChanged() {
void WindowSystem::OnExitRequested() {
std::scoped_lock lk{m_lock};
for (const auto& [aruid, applet] : m_applets) {
for (const auto& [_, applet] : m_applets) {
std::scoped_lock lk2{applet->lock};
applet->lifecycle_manager.RequestExit();
}
@ -156,7 +156,7 @@ void WindowSystem::OnHomeButtonPressed(ButtonPressDuration type) {
void WindowSystem::PruneTerminatedAppletsLocked() {
for (auto it = m_applets.begin(); it != m_applets.end(); /* ... */) {
const auto& [aruid, applet] = *it;
const auto& [_, applet] = *it;
std::scoped_lock lk{applet->lock};

Voir le fichier

@ -119,7 +119,7 @@ Result LANDiscovery::Scan(std::span<NetworkInfo> out_networks, s16& out_count,
std::this_thread::sleep_for(std::chrono::seconds(1));
std::scoped_lock lock{packet_mutex};
for (const auto& [key, info] : scan_results) {
for (const auto& [_, info] : scan_results) {
if (out_count >= static_cast<s16>(out_networks.size())) {
break;
}

Voir le fichier

@ -348,7 +348,7 @@ Result IApplicationManagerInterface::ListApplicationRecord(
size_t i = 0;
u8 ii = 24;
for (const auto& [slot, game] : installed_games) {
for (const auto& [_, game] : installed_games) {
if (i >= limit) {
break;
}

Voir le fichier

@ -28,7 +28,7 @@ ServiceManager::ServiceManager(Kernel::KernelCore& kernel_) : kernel{kernel_} {
}
ServiceManager::~ServiceManager() {
for (auto& [name, port] : service_ports) {
for (auto& [_, port] : service_ports) {
port->Close();
}

Voir le fichier

@ -571,7 +571,7 @@ SDLDriver::~SDLDriver() {
std::vector<Common::ParamPackage> SDLDriver::GetInputDevices() const {
std::vector<Common::ParamPackage> devices;
std::unordered_map<int, std::shared_ptr<SDLJoystick>> joycon_pairs;
for (const auto& [key, value] : joystick_map) {
for (const auto& [_, value] : joystick_map) {
for (const auto& joystick : value) {
if (!joystick->GetSDLJoystick()) {
continue;
@ -591,7 +591,7 @@ std::vector<Common::ParamPackage> SDLDriver::GetInputDevices() const {
}
// Add dual controllers
for (const auto& [key, value] : joystick_map) {
for (const auto& [_, value] : joystick_map) {
for (const auto& joystick : value) {
if (joystick->IsJoyconRight()) {
if (!joycon_pairs.contains(joystick->GetPort())) {

Voir le fichier

@ -69,7 +69,7 @@ void ConfigureApplets::Setup(const ConfigurationShared::Builder& builder) {
applets_hold.emplace(setting->Id(), widget);
}
for (const auto& [label, widget] : applets_hold) {
for (const auto& [_, widget] : applets_hold) {
library_applets_layout.addWidget(widget);
}
}

Voir le fichier

@ -164,7 +164,7 @@ void ConfigureAudio::Setup(const ConfigurationShared::Builder& builder) {
}
}
for (const auto& [id, widget] : hold) {
for (const auto& [_, widget] : hold) {
layout.addWidget(widget);
}
}

Voir le fichier

@ -79,7 +79,7 @@ void ConfigureCpu::Setup(const ConfigurationShared::Builder& builder) {
}
}
for (const auto& [label, widget] : unsafe_hold) {
for (const auto& [_, widget] : unsafe_hold) {
unsafe_layout->addWidget(widget);
}

Voir le fichier

@ -81,10 +81,10 @@ void ConfigureGeneral::Setup(const ConfigurationShared::Builder& builder) {
}
}
for (const auto& [id, widget] : general_hold) {
for (const auto& [_, widget] : general_hold) {
general_layout.addWidget(widget);
}
for (const auto& [id, widget] : linux_hold) {
for (const auto& [_, widget] : linux_hold) {
linux_layout.addWidget(widget);
}
}

Voir le fichier

@ -358,7 +358,7 @@ void ConfigureGraphics::Setup(const ConfigurationShared::Builder& builder) {
}
}
for (const auto& [id, widget] : hold_graphics) {
for (const auto& [_, widget] : hold_graphics) {
graphics_layout.addWidget(widget);
}

Voir le fichier

@ -53,7 +53,7 @@ void ConfigureGraphicsAdvanced::Setup(const ConfigurationShared::Builder& builde
checkbox_enable_compute_pipelines = widget;
}
}
for (const auto& [id, widget] : hold) {
for (const auto& [_, widget] : hold) {
layout.addWidget(widget);
}
}

Voir le fichier

@ -50,7 +50,7 @@ void ConfigureLinuxTab::Setup(const ConfigurationShared::Builder& builder) {
linux_hold.insert({setting->Id(), widget});
}
for (const auto& [id, widget] : linux_hold) {
for (const auto& [_, widget] : linux_hold) {
linux_layout.addWidget(widget);
}
}

Voir le fichier

@ -174,10 +174,10 @@ void ConfigureSystem::Setup(const ConfigurationShared::Builder& builder) {
widget->deleteLater();
}
}
for (const auto& [label, widget] : core_hold) {
for (const auto& [_, widget] : core_hold) {
core_layout.addWidget(widget);
}
for (const auto& [id, widget] : system_hold) {
for (const auto& [_, widget] : system_hold) {
system_layout.addWidget(widget);
}
}

Voir le fichier

@ -83,7 +83,7 @@ static void PopulateResolutionComboBox(QComboBox* screenshot_height, QWidget* pa
const auto& enumeration =
Settings::EnumMetadata<Settings::ResolutionSetup>::Canonicalizations();
std::set<u32> resolutions{};
for (const auto& [name, value] : enumeration) {
for (const auto& [_, value] : enumeration) {
const float up_factor = GetUpFactor(value);
u32 height_undocked = Layout::ScreenUndocked::Height * up_factor;
u32 height_docked = Layout::ScreenDocked::Height * up_factor;

Voir le fichier

@ -61,7 +61,7 @@ std::vector<std::string> InputProfiles::GetInputProfileNames() {
auto it = map_profiles.cbegin();
while (it != map_profiles.cend()) {
const auto& [profile_name, config] = *it;
const auto& [profile_name, _] = *it;
if (!ProfileExistsInFilesystem(profile_name)) {
it = map_profiles.erase(it);
continue;

Voir le fichier

@ -135,7 +135,7 @@ QWidget* Widget::CreateCombobox(std::function<std::string()>& serializer,
const ComboboxTranslations* enumeration{nullptr};
if (combobox_enumerations.contains(type)) {
enumeration = &combobox_enumerations.at(type);
for (const auto& [id, name] : *enumeration) {
for (const auto& [_, name] : *enumeration) {
combobox->addItem(name);
}
} else {
@ -223,7 +223,7 @@ QWidget* Widget::CreateRadioGroup(std::function<std::string()>& serializer,
};
if (!Settings::IsConfiguringGlobal()) {
for (const auto& [id, button] : radio_buttons) {
for (const auto& [_, button] : radio_buttons) {
QObject::connect(button, &QAbstractButton::clicked, [touch]() { touch(); });
}
}

Voir le fichier

@ -87,7 +87,7 @@ std::optional<std::filesystem::path> GetCurrentUserPlayTimePath(
std::vector<PlayTimeElement> elements;
elements.reserve(play_time_db.size());
for (auto& [program_id, play_time] : play_time_db) {
for (const auto& [program_id, play_time] : play_time_db) {
if (program_id != 0) {
elements.push_back(PlayTimeElement{program_id, play_time});
}

Voir le fichier

@ -45,7 +45,7 @@ public:
[[nodiscard]] unsigned Count() const noexcept {
unsigned count = 0;
for (const auto& [index, value] : page_table) {
for (const auto& [_, value] : page_table) {
count += value;
}
return count;

Voir le fichier

@ -45,7 +45,7 @@ public:
// Vic does not know which nvdec is producing frames for it, so search all the fds here for
// the given offset.
for (auto& map : m_presentation_order) {
for (auto& [offset, frame] : map.second) {
for (auto& [offset, _] : map.second) {
if (offset == search_offset) {
return map.first;
}
@ -53,7 +53,7 @@ public:
}
for (auto& map : m_decode_order) {
for (auto& [offset, frame] : map.second) {
for (auto& [offset, _] : map.second) {
if (offset == search_offset) {
return map.first;
}