Skip to content

Commit f610523

Browse files
committed
Fix #294
1 parent 9f06da7 commit f610523

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

peglib.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff 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;

0 commit comments

Comments
 (0)