From ff62b5cc459edee72d7a3bf817069eac90fde3bb Mon Sep 17 00:00:00 2001 From: vng Date: Thu, 6 Feb 2014 20:03:08 +0300 Subject: [PATCH] Minor code fixes. --- base/lower_case.cpp | 8 ++++++-- base/normalize_unicode.cpp | 6 +++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/base/lower_case.cpp b/base/lower_case.cpp index df882c24ea..5c65c5727b 100644 --- a/base/lower_case.cpp +++ b/base/lower_case.cpp @@ -172,21 +172,25 @@ static size_t w(UniChar c, UniChar * buf) void MakeLowerCase(UniString & s) { - UniString r; size_t const size = s.size(); + + UniString r; + r.reserve(size); for (size_t i = 0; i < size; ++i) { UniChar const c = LowerUniChar(s[i]); if (c != 0) r.push_back(c); else - { // special case, replace this char with two or more chars for full case folding + { + // special case, replace this char with two or more chars for full case folding UniChar cc[3]; size_t const count = w(s[i], &cc[0]); for (size_t j = 0; j < count; ++j) r.push_back(cc[j]); } } + s.swap(r); } diff --git a/base/normalize_unicode.cpp b/base/normalize_unicode.cpp index 7d86812bc0..192b54b547 100644 --- a/base/normalize_unicode.cpp +++ b/base/normalize_unicode.cpp @@ -13,8 +13,11 @@ static void w(strings::UniString & r, uint16_t startIndex, int count) void Normalize(strings::UniString & s) { + size_t const size = s.size(); + strings::UniString r; - for (size_t i = 0; i < s.size(); ++i) + r.reserve(size); + for (size_t i = 0; i < size; ++i) { strings::UniChar const c = s[i]; // ASCII optimization @@ -4582,6 +4585,7 @@ void Normalize(strings::UniString & s) } } } + s.swap(r); }