Skip to content

Commit

Permalink
Reduce is_ascii_string function dependency for parser
Browse files Browse the repository at this point in the history
Changed to use `rb_parser_is_ascii_string` function instead of `is_ascii_string` function
  • Loading branch information
S-H-GAMELINKS authored and nobu committed Sep 27, 2024
1 parent c1ee5ea commit 7f83bd3
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 11 deletions.
9 changes: 7 additions & 2 deletions parse.y
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand Down
7 changes: 0 additions & 7 deletions ruby_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,6 @@

#define parser_encoding const void

static int
is_ascii_string2(VALUE str)
{
return is_ascii_string(str);
}

RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 6, 0)
static VALUE
syntax_error_append(VALUE exc, VALUE file, int line, int column,
Expand Down Expand Up @@ -375,7 +369,6 @@ static const rb_parser_config_t rb_global_parser_config = {
.str_new = rb_str_new,
.str_new_cstr = rb_str_new_cstr,
.str_to_interned_str = rb_str_to_interned_str,
.is_ascii_string = is_ascii_string2,
.enc_str_new = enc_str_new,
.str_vcatf = rb_str_vcatf,
.rb_sprintf = rb_sprintf,
Expand Down
1 change: 0 additions & 1 deletion rubyparser.h
Original file line number Diff line number Diff line change
Expand Up @@ -1221,7 +1221,6 @@ typedef struct rb_parser_config_struct {
VALUE (*str_new)(const char *ptr, long len);
VALUE (*str_new_cstr)(const char *ptr);
VALUE (*str_to_interned_str)(VALUE);
int (*is_ascii_string)(VALUE str);
VALUE (*enc_str_new)(const char *ptr, long len, rb_encoding *enc);
RBIMPL_ATTR_FORMAT(RBIMPL_PRINTF_FORMAT, 2, 0)
VALUE (*str_vcatf)(VALUE str, const char *fmt, va_list ap);
Expand Down
1 change: 0 additions & 1 deletion universal_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,6 @@
#undef rb_str_new_cstr
#define rb_str_new_cstr p->config->str_new_cstr
#define rb_str_to_interned_str p->config->str_to_interned_str
#define is_ascii_string p->config->is_ascii_string
#define rb_enc_str_new p->config->enc_str_new
#define rb_str_vcatf p->config->str_vcatf
#define rb_sprintf p->config->rb_sprintf
Expand Down

0 comments on commit 7f83bd3

Please sign in to comment.