From bb2e9be160776e50651ec38e7d63ddbc21e30dc0 Mon Sep 17 00:00:00 2001 From: Serdar Kocdemir Date: Mon, 12 Feb 2024 16:33:37 +0000 Subject: [PATCH] Reduce heap pressure on getPacketContents Reviewed-by: Aaron Ruby Acked-by: Yonggang Luo Acked-by: Adam Jackson Part-of: --- src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl b/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl index 00f0442a614..a6490d98fc9 100644 --- a/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl +++ b/src/gfxstream/guest/vulkan_enc/VkEncoder.cpp.inl @@ -81,11 +81,12 @@ bool VkEncoder::decRef() { } std::string VkEncoder::getPacketContents(const uint8_t* ptr, size_t len) { - std::string result; - std::unique_ptr buf(new char[3]); - for (size_t i = 0; i < len; i++) { - std::snprintf(buf.get(), 3, "%02X", ptr[i]); - result += " " + std::string(buf.get(), buf.get() + 2); - } - return result; + std::string result; + result.reserve(3 * len); + char buf[4]; + for (size_t i = 0; i < len; i++) { + std::snprintf(buf, 4, " %02X", ptr[i]); + result.append(buf, 3); + } + return result; }