From 280e24b3e350724e7745e93e68b0609717b04f26 Mon Sep 17 00:00:00 2001 From: Jason Simmons Date: Wed, 30 Nov 2022 11:49:06 -0800 Subject: [PATCH] Remove use of stringstream in NormalizeUniformKey (#37826) This showed up as a hotspot in profiles. --- .../renderer/backend/gles/buffer_bindings_gles.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/impeller/renderer/backend/gles/buffer_bindings_gles.cc b/impeller/renderer/backend/gles/buffer_bindings_gles.cc index 018e70a8f0aad..3861765b0391f 100644 --- a/impeller/renderer/backend/gles/buffer_bindings_gles.cc +++ b/impeller/renderer/backend/gles/buffer_bindings_gles.cc @@ -60,15 +60,14 @@ bool BufferBindingsGLES::RegisterVertexStageInput( } static std::string NormalizeUniformKey(const std::string& key) { - std::stringstream stream; - for (size_t i = 0, count = key.length(); i < count; i++) { - auto ch = key.data()[i]; - if (ch == '_') { - continue; + std::string result; + result.reserve(key.length()); + for (char ch : key) { + if (ch != '_') { + result.push_back(toupper(ch)); } - stream << static_cast(toupper(ch)); } - return stream.str(); + return result; } static std::string CreateUnifiormMemberKey(const std::string& struct_name,