aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-06-12 17:47:05 -0400
committerLioncash <mathew1800@gmail.com>2019-06-12 17:54:11 -0400
commit37ff16bbb04881da44bf8f2ef727c526f63004e5 (patch)
tree56f5632abd17d87ef128d8029b86438d928bcd97
parent59d55c81373fc81076177d2d6db0eb5ec556b56d (diff)
common/hex_util: Reserve std::string memory ahead of time
Avoids potentially performing multiple reallocations (depending on the size of the input data) by reserving the necessary amount of memory ahead of time. This is trivially doable, so there's no harm in it.
-rw-r--r--src/common/hex_util.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/common/hex_util.h b/src/common/hex_util.h
index a64c9b4859..bb4736f96f 100644
--- a/src/common/hex_util.h
+++ b/src/common/hex_util.h
@@ -36,10 +36,15 @@ std::string HexToString(const ContiguousContainer& data, bool upper = true) {
static_assert(std::is_same_v<typename ContiguousContainer::value_type, u8>,
"Underlying type within the contiguous container must be u8.");
+ constexpr std::size_t pad_width = 2;
+
std::string out;
+ out.reserve(std::size(data) * pad_width);
+
for (const u8 c : data) {
out += fmt::format(upper ? "{:02X}" : "{:02x}", c);
}
+
return out;
}