зеркало из https://github.com/github/ruby.git
merge revision(s) d8702ddbfbe8cc7fc601a9a4d19842ef9c2b76c1: [Backport #20083]
Fix [Bug #20083]: correct a cache point size for atomic groups (#9367) --- regexec.c | 2 +- test/ruby/test_regexp.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-)
This commit is contained in:
Родитель
818b4ea9b1
Коммит
5f3dfa1c27
|
@ -542,7 +542,7 @@ init_cache_opcodes(const regex_t* reg, OnigCacheOpcode* cache_opcodes, long* num
|
|||
cache_opcodes->num_cache_points_at_outer_repeat = num_cache_points_at_repeat;\
|
||||
cache_opcodes->num_cache_points_in_outer_repeat = 0;\
|
||||
cache_opcodes->lookaround_nesting = lookaround_nesting;\
|
||||
cache_point += lookaround_nesting > 0 ? 2 : 1;\
|
||||
cache_point += lookaround_nesting != 0 ? 2 : 1;\
|
||||
cache_opcodes++;\
|
||||
} while (0)
|
||||
|
||||
|
|
|
@ -1979,6 +1979,14 @@ class TestRegexp < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_bug_20083 # [Bug #20083]
|
||||
re = /([\s]*ABC)$/i
|
||||
(1..100).each do |n|
|
||||
text = "#{"0" * n}ABC"
|
||||
assert text.match?(re)
|
||||
end
|
||||
end
|
||||
|
||||
def test_linear_time_p
|
||||
assert_send [Regexp, :linear_time?, /a/]
|
||||
assert_send [Regexp, :linear_time?, 'a']
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
# define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
|
||||
#define RUBY_VERSION_TEENY 0
|
||||
#define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
|
||||
#define RUBY_PATCHLEVEL 1
|
||||
#define RUBY_PATCHLEVEL 2
|
||||
|
||||
#include "ruby/version.h"
|
||||
#include "ruby/internal/abi.h"
|
||||
|
|
Загрузка…
Ссылка в новой задаче