Browse Source

emulated_controller: Use std::move() in GetMappedDevices()

Avoids churning allocations in a loop.
nce_cpp
Lioncash 3 years ago
parent
commit
68d9621a8b
  1. 12
      src/core/hid/emulated_controller.cpp

12
src/core/hid/emulated_controller.cpp

@ -432,7 +432,7 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
continue; continue;
} }
const auto devices_it = std::find_if( const auto devices_it = std::find_if(
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
devices.begin(), devices.end(), [&param](const Common::ParamPackage& param_) {
return param.Get("engine", "") == param_.Get("engine", "") && return param.Get("engine", "") == param_.Get("engine", "") &&
param.Get("guid", "") == param_.Get("guid", "") && param.Get("guid", "") == param_.Get("guid", "") &&
param.Get("port", 0) == param_.Get("port", 0) && param.Get("port", 0) == param_.Get("port", 0) &&
@ -441,12 +441,12 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
if (devices_it != devices.end()) { if (devices_it != devices.end()) {
continue; continue;
} }
Common::ParamPackage device{};
auto& device = devices.emplace_back();
device.Set("engine", param.Get("engine", "")); device.Set("engine", param.Get("engine", ""));
device.Set("guid", param.Get("guid", "")); device.Set("guid", param.Get("guid", ""));
device.Set("port", param.Get("port", 0)); device.Set("port", param.Get("port", 0));
device.Set("pad", param.Get("pad", 0)); device.Set("pad", param.Get("pad", 0));
devices.push_back(device);
} }
for (const auto& param : stick_params) { for (const auto& param : stick_params) {
@ -457,7 +457,7 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
continue; continue;
} }
const auto devices_it = std::find_if( const auto devices_it = std::find_if(
devices.begin(), devices.end(), [param](const Common::ParamPackage param_) {
devices.begin(), devices.end(), [&param](const Common::ParamPackage& param_) {
return param.Get("engine", "") == param_.Get("engine", "") && return param.Get("engine", "") == param_.Get("engine", "") &&
param.Get("guid", "") == param_.Get("guid", "") && param.Get("guid", "") == param_.Get("guid", "") &&
param.Get("port", 0) == param_.Get("port", 0) && param.Get("port", 0) == param_.Get("port", 0) &&
@ -466,12 +466,12 @@ std::vector<Common::ParamPackage> EmulatedController::GetMappedDevices(
if (devices_it != devices.end()) { if (devices_it != devices.end()) {
continue; continue;
} }
Common::ParamPackage device{};
auto& device = devices.emplace_back();
device.Set("engine", param.Get("engine", "")); device.Set("engine", param.Get("engine", ""));
device.Set("guid", param.Get("guid", "")); device.Set("guid", param.Get("guid", ""));
device.Set("port", param.Get("port", 0)); device.Set("port", param.Get("port", 0));
device.Set("pad", param.Get("pad", 0)); device.Set("pad", param.Get("pad", 0));
devices.push_back(device);
} }
return devices; return devices;
} }

Loading…
Cancel
Save