1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Make sure rb_enc_str_new_static() is used when enc is NULL

* The definition of the rb_enc_str_new_cstr macro depends on
  HAVE_BUILTIN___BUILTIN_CONSTANT_P.
* It SEGV on mswin otherwise.
This commit is contained in:
Benoit Daloze 2020-06-01 00:30:41 +02:00
parent bb966b5dee
commit b7e1de117e

View file

@ -166,8 +166,13 @@ static VALUE encoding_spec_rb_enc_str_new_cstr(VALUE self, VALUE str, VALUE enc)
}
static VALUE encoding_spec_rb_enc_str_new_cstr_constant(VALUE self, VALUE enc) {
rb_encoding *e = NIL_P(enc) ? NULL : rb_to_encoding(enc);
return rb_enc_str_new_cstr("test string literal", e);
if (NIL_P(enc)) {
rb_encoding *e = NULL;
return rb_enc_str_new_static("test string literal", strlen("test string literal"), e);
} else {
rb_encoding *e = rb_to_encoding(enc);
return rb_enc_str_new_cstr("test string literal", e);
}
}
static VALUE encoding_spec_rb_enc_str_new(VALUE self, VALUE str, VALUE len, VALUE enc) {