Use rb_str_conv_enc for simplicity

This commit is contained in:
Nobuyoshi Nakada 2024-12-11 01:13:15 +09:00
parent e90b447655
commit 979543e7bf
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465

4
io.c
View File

@ -4188,7 +4188,7 @@ rb_io_getline_0(VALUE rs, long limit, int chomp, rb_io_t *fptr)
rs = 0;
if (!rb_enc_asciicompat(enc)) {
rs = rb_usascii_str_new(rsptr, rslen);
rs = rb_str_encode(rs, rb_enc_from_encoding(enc), 0, Qnil);
rs = rb_str_conv_enc(rs, 0, enc);
OBJ_FREEZE(rs);
rsptr = RSTRING_PTR(rs);
rslen = RSTRING_LEN(rs);
@ -4200,7 +4200,7 @@ rb_io_getline_0(VALUE rs, long limit, int chomp, rb_io_t *fptr)
newline = (unsigned char)rsptr[rslen - 1];
}
else {
rs = rb_str_encode(rs, rb_enc_from_encoding(enc), 0, Qnil);
rs = rb_str_conv_enc(rs, 0, enc);
rsptr = RSTRING_PTR(rs);
const char *e = rsptr + rslen;
const char *last = rb_enc_prev_char(rsptr, e, e, enc);