diff options
| author | 2020-12-07 22:02:56 -0500 | |
|---|---|---|
| committer | 2020-12-07 22:02:58 -0500 | |
| commit | 97dd67ad1cf417e85546a90afece8b2958954ca8 (patch) | |
| tree | c9d0910a956fccb083227c983b6e777507b91904 /src | |
| parent | Merge pull request #5164 from lioncash/contains (diff) | |
| download | yuzu-97dd67ad1cf417e85546a90afece8b2958954ca8.tar.gz yuzu-97dd67ad1cf417e85546a90afece8b2958954ca8.tar.xz yuzu-97dd67ad1cf417e85546a90afece8b2958954ca8.zip | |
controller: Avoid unnecessary copies in ConfigurationComplete()
Avoids unnecessary 1072 byte copies when querying info about
controllers.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/hle/service/am/applets/controller.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/core/hle/service/am/applets/controller.cpp b/src/core/hle/service/am/applets/controller.cpp index e8ea4248b..2504cac32 100644 --- a/src/core/hle/service/am/applets/controller.cpp +++ b/src/core/hle/service/am/applets/controller.cpp | |||
| @@ -227,15 +227,14 @@ void Controller::ConfigurationComplete() { | |||
| 227 | // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters. | 227 | // If enable_single_mode is enabled, player_count is 1 regardless of any other parameters. |
| 228 | // Otherwise, only count connected players from P1-P8. | 228 | // Otherwise, only count connected players from P1-P8. |
| 229 | result_info.player_count = | 229 | result_info.player_count = |
| 230 | is_single_mode ? 1 | 230 | is_single_mode |
| 231 | : static_cast<s8>(std::count_if( | 231 | ? 1 |
| 232 | players.begin(), players.end() - 2, | 232 | : static_cast<s8>(std::count_if(players.begin(), players.end() - 2, |
| 233 | [](Settings::PlayerInput player) { return player.connected; })); | 233 | [](const auto& player) { return player.connected; })); |
| 234 | 234 | ||
| 235 | result_info.selected_id = HID::Controller_NPad::IndexToNPad( | 235 | result_info.selected_id = HID::Controller_NPad::IndexToNPad(std::distance( |
| 236 | std::distance(players.begin(), | 236 | players.begin(), std::find_if(players.begin(), players.end(), |
| 237 | std::find_if(players.begin(), players.end(), | 237 | [](const auto& player) { return player.connected; }))); |
| 238 | [](Settings::PlayerInput player) { return player.connected; }))); | ||
| 239 | 238 | ||
| 240 | result_info.result = 0; | 239 | result_info.result = 0; |
| 241 | 240 | ||