From 081fba5cbd2add30b3c90f5c45201278db114aac Mon Sep 17 00:00:00 2001 From: Nav Date: Mon, 28 Feb 2022 00:54:19 +0000 Subject: [PATCH] Reduced memory allocations when generating raw buffer from EDBG AVR command frames --- .../EDBG/AVR/CommandFrames/AvrCommandFrame.hpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AvrCommandFrame.hpp b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AvrCommandFrame.hpp index f94e326f..4618b334 100644 --- a/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AvrCommandFrame.hpp +++ b/src/DebugToolDrivers/Protocols/CMSIS-DAP/VendorSpecific/EDBG/AVR/CommandFrames/AvrCommandFrame.hpp @@ -81,7 +81,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr * @return */ [[nodiscard]] auto getRawCommandFrame() const { - auto rawCommand = std::vector(5); + auto rawCommand = std::vector(5 + this->payload.size()); rawCommand[0] = 0x0E; // Start of frame rawCommand[1] = 0x00; // Protocol version @@ -92,11 +92,7 @@ namespace Bloom::DebugToolDrivers::Protocols::CmsisDap::Edbg::Avr rawCommand[4] = static_cast(this->protocolHandlerId); if (!this->payload.empty()) { - rawCommand.insert( - rawCommand.end(), - this->payload.begin(), - this->payload.end() - ); + std::copy(this->payload.begin(), this->payload.end(), rawCommand.begin() + 5); } return rawCommand;