From 3718cc08c49530bd4bd66659c57b0e8c1a576985 Mon Sep 17 00:00:00 2001 From: Swiftb0y <12380386+Swiftb0y@users.noreply.github.com> Date: Sun, 18 Feb 2024 22:21:49 +0100 Subject: [PATCH] refactor: avoid temporary qlist allocation on midi sysex receive https://github.com/mixxxdj/mixxx/pull/12827#discussion_r1493840916 --- src/controllers/midi/midicontroller.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/controllers/midi/midicontroller.cpp b/src/controllers/midi/midicontroller.cpp index 8ccdcc1bcf8..98f635d7d3f 100644 --- a/src/controllers/midi/midicontroller.cpp +++ b/src/controllers/midi/midicontroller.cpp @@ -1,6 +1,7 @@ #include "controllers/midi/midicontroller.h" #include +#include #include "control/controlobject.h" #include "controllers/defs_controllers.h" @@ -518,10 +519,11 @@ void MidiController::receive(const QByteArray& data, mixxx::Duration timestamp) } } - const auto inputMappings = m_pMapping->getInputMappings().values(mappingKey.key); - for (const auto& inputMapping : inputMappings) { + const auto [inputMappingsBegin, inputMappingsEnd] = + m_pMapping->getInputMappings().equal_range(mappingKey.key); + std::for_each(inputMappingsBegin, inputMappingsEnd, [&](const auto& inputMapping) { processInputMapping(inputMapping, data, timestamp); - } + }); } void MidiController::processInputMapping(const MidiInputMapping& mapping,