diff options
| author | S-H-GAMELINKS <gamelinks007@gmail.com> | 2024-09-26 22:04:49 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu.nakada@gmail.com> | 2024-09-27 19:34:35 +0900 |
| commit | 7f83bd3732b9ecb66655416a58b4c2bf329afa20 (patch) | |
| tree | b585ada750467553e3b128b60af2cb3b2a5fba9d /parse.y | |
| parent | c1ee5ea28f1684250b1386d8ac9d1e754f54a79e (diff) | |
Reduce `is_ascii_string` function dependency for parser
Changed to use `rb_parser_is_ascii_string` function instead of `is_ascii_string` function
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11698
Diffstat (limited to 'parse.y')
| -rw-r--r-- | parse.y | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -7694,16 +7694,21 @@ static VALUE parser_str_new(struct parser_params *p, const char *ptr, long len, rb_encoding *enc, int func, rb_encoding *enc0) { VALUE str; + rb_parser_string_t *pstr; + + pstr = rb_parser_encoding_string_new(p, ptr, len, enc); + str = rb_str_new_mutable_parser_string(pstr); - str = rb_enc_str_new(ptr, len, enc); if (!(func & STR_FUNC_REGEXP) && rb_enc_asciicompat(enc)) { - if (is_ascii_string(str)) { + if (rb_parser_is_ascii_string(p, pstr)) { } else if (rb_is_usascii_enc((void *)enc0) && enc != rb_utf8_encoding()) { rb_enc_associate(str, rb_ascii8bit_encoding()); } } + rb_parser_string_free(p, pstr); + return str; } |
