summaryrefslogtreecommitdiff
path: root/ext/erb
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2022-11-05 01:30:41 -0700
committergit <svn-admin@ruby-lang.org>2022-11-05 08:34:32 +0000
commit9af344a42129ea193d6dba92d62458c5f3429507 (patch)
tree942d015bb9cc44244e757cd6e84a0ee03d5a38f5 /ext/erb
parent458d6fb15eedaa142c71f120e3a71b84d0938454 (diff)
downloadruby-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/erb')
-rw-r--r--ext/erb/erb.c5
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);