From cd46b267f5715c0900b409d7bcb97f6bc9a43d9e Mon Sep 17 00:00:00 2001 From: Lioncash <mathew1800@gmail.com> Date: Sun, 22 Jul 2018 15:33:07 -0400 Subject: string_util: Remove unnecessary std::string instance in TabsToSpaces() We can just use the variant of std::string's replace() function that can replace an occurrence with N copies of the same character, eliminating the need to allocate a std::string containing a buffer of spaces. --- src/common/string_util.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src/common/string_util.cpp') diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index f3ad3d68a4..2099eebb8b 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -168,15 +168,14 @@ void SplitString(const std::string& str, const char delim, std::vector<std::stri output.pop_back(); } -std::string TabsToSpaces(int tab_size, const std::string& in) { - const std::string spaces(tab_size, ' '); - std::string out(in); - +std::string TabsToSpaces(int tab_size, std::string in) { size_t i = 0; - while (out.npos != (i = out.find('\t'))) - out.replace(i, 1, spaces); - return out; + while ((i = in.find('\t')) != std::string::npos) { + in.replace(i, 1, tab_size, ' '); + } + + return in; } std::string ReplaceAll(std::string result, const std::string& src, const std::string& dest) { -- cgit v1.2.3-70-g09d2