diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2022-11-05 01:30:41 -0700 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-11-05 08:34:32 +0000 |
commit | 9af344a42129ea193d6dba92d62458c5f3429507 (patch) | |
tree | 942d015bb9cc44244e757cd6e84a0ee03d5a38f5 /ext | |
parent | 458d6fb15eedaa142c71f120e3a71b84d0938454 (diff) | |
download | ruby-9af344a42129ea193d6dba92d62458c5f3429507.tar.gz |
[ruby/erb] Revert the strpbrk optimization
because it's much slower on M1 https://github.com/ruby/erb/pull/29.
It'd be too complicated to switch the implementation based on known
optimized platforms / versions.
Besides, short strings are the most common usages of this method and
SIMD doesn't really help that case. All in all, I can't justify the
existence of this code.
https://github.com/ruby/erb/commit/30691c8995
Diffstat (limited to 'ext')
-rw-r--r-- | ext/erb/erb.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/ext/erb/erb.c b/ext/erb/erb.c index a103fb30e4..b72c295a81 100644 --- a/ext/erb/erb.c +++ b/ext/erb/erb.c @@ -38,11 +38,6 @@ escaped_length(VALUE str) static VALUE optimized_escape_html(VALUE str) { - // Use strpbrk to optimize the no-escape case when str is long enough for SIMD. - if (RSTRING_LEN(str) >= 16 && strpbrk(RSTRING_PTR(str), "'&\"<>") == NULL) { - return str; - } - VALUE vbuf; char *buf = ALLOCV_N(char, vbuf, escaped_length(str)); const char *cstr = RSTRING_PTR(str); |