diff options
| author | Maxime Coste <mawww@kakoune.org> | 2024-12-01 19:36:44 +1100 |
|---|---|---|
| committer | Maxime Coste <mawww@kakoune.org> | 2024-12-01 19:36:44 +1100 |
| commit | c52faded6fdba1297e1daf5894ccaa208b83ea7e (patch) | |
| tree | 4bdc1eb6da9e031876153a139410618beacf9bdc /src/regex_impl.cc | |
| parent | 8769b94eb25cd7402db6caa4f0d4b417f6365703 (diff) | |
Add specific start desc optimization for single possible start byte
Use tighter codegen for that pretty common use case.
Diffstat (limited to 'src/regex_impl.cc')
| -rw-r--r-- | src/regex_impl.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/regex_impl.cc b/src/regex_impl.cc index d86637cd..0789ef6d 100644 --- a/src/regex_impl.cc +++ b/src/regex_impl.cc @@ -1031,6 +1031,9 @@ private: not contains(start_desc.map, false)) return nullptr; + if (std::count(std::begin(start_desc.map), std::end(start_desc.map), true) == 1) + start_desc.start_byte = find(start_desc.map, true) - std::begin(start_desc.map); + return std::make_unique<CompiledRegex::StartDesc>(start_desc); } |
