From 7b9ba696e56a2437ba3eaee8919fe634e55c4807 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Tue, 1 Dec 2015 15:36:09 -0800 Subject: [PATCH] Reserve strings length before formatting Manchester data. --- firmware/application/ui_receiver.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/firmware/application/ui_receiver.cpp b/firmware/application/ui_receiver.cpp index b4e6cc996..11199b312 100644 --- a/firmware/application/ui_receiver.cpp +++ b/firmware/application/ui_receiver.cpp @@ -587,10 +587,14 @@ static ManchesterFormatted format_manchester( ) { const size_t payload_length_decoded = decoder.symbols_count(); const size_t payload_length_bytes = (payload_length_decoded + 7) / 8; + const size_t payload_length_hex_characters = payload_length_bytes * 2; const size_t payload_length_symbols_rounded = payload_length_bytes * 8; std::string hex_data; std::string hex_error; + hex_data.reserve(payload_length_hex_characters); + hex_error.reserve(payload_length_hex_characters); + uint8_t byte_data = 0; uint8_t byte_error = 0; for(size_t i=0; i