summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2020-12-07 22:02:56 -0500
committerGravatar Lioncash2020-12-07 22:02:58 -0500
commit97dd67ad1cf417e85546a90afece8b2958954ca8 (patch)
treec9d0910a956fccb083227c983b6e777507b91904 /src
parentMerge pull request #5164 from lioncash/contains (diff)
downloadyuzu-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.cpp17
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