File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed
Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -381,9 +381,9 @@ class Trie {
381381 : ignore_case_(ignore_case) {
382382 size_t id = 0 ;
383383 for (const auto &item : items) {
384+ const auto &s = ignore_case ? to_lower (item) : item;
384385 for (size_t len = 1 ; len <= item.size (); len++) {
385386 auto last = len == item.size ();
386- const auto &s = ignore_case ? to_lower (item) : item;
387387 std::string_view sv (s.data (), len);
388388 auto it = dic_.find (sv);
389389 if (it == dic_.end ()) {
@@ -399,12 +399,17 @@ class Trie {
399399 }
400400
401401 size_t match (const char *text, size_t text_len, size_t &id) const {
402+ std::string lower_text;
403+ if (ignore_case_) {
404+ lower_text = to_lower (text);
405+ text = lower_text.data ();
406+ }
407+
402408 size_t match_len = 0 ;
403409 auto done = false ;
404410 size_t len = 1 ;
405411 while (!done && len <= text_len) {
406- const auto &s = ignore_case_ ? to_lower (text) : std::string (text);
407- std::string_view sv (s.data (), len);
412+ std::string_view sv (text, len);
408413 auto it = dic_.find (sv);
409414 if (it == dic_.end ()) {
410415 done = true ;
You can’t perform that action at this time.
0 commit comments