From 1b884a56d5209be2436690fc34ffc27660e94175 Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Wed, 1 Jul 2020 16:22:40 +0300 Subject: [PATCH] [search] Check we have hiragana before transliteration. --- base/buffer_vector.hpp | 2 ++ indexer/search_string_utils.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/base/buffer_vector.hpp b/base/buffer_vector.hpp index 9c12e10684..8a5ef8eafa 100644 --- a/base/buffer_vector.hpp +++ b/base/buffer_vector.hpp @@ -237,8 +237,10 @@ public: //@} T const * begin() const { return data(); } + T const * cbegin() const { return data(); } T * begin() { return data(); } T const * end() const { return data() + size(); } + T const * cend() const { return data() + size(); } T * end() { return data() + size(); } //@} diff --git a/indexer/search_string_utils.cpp b/indexer/search_string_utils.cpp index cf8a021da3..c2ef88f840 100644 --- a/indexer/search_string_utils.cpp +++ b/indexer/search_string_utils.cpp @@ -64,6 +64,10 @@ void RemoveNumeroSigns(UniString & s) void TransliterateHiraganaToKatakana(UniString & s) { + // Transliteration is heavy. Check we have any hiragana symbol before transliteration. + if (!base::AnyOf(s, [](UniChar c){ return c >= 0x3041 && c<= 0x309F; })) + return; + InitTransliterationInstanceWithDefaultDirs(); string out; if (Transliteration::Instance().Transliterate(strings::ToUtf8(s), "Hiragana-Katakana", out))