Encoding objects can be accessed in multi-ractors and there is no
state to mutate. So we can mark it as frozen and shareable.
[Bug #17188]
This commit is contained in:
Koichi Sasada 2020-10-14 02:10:54 +09:00
Родитель 11c2f0f36c
Коммит 102c2ba65f
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -122,7 +122,10 @@ rb_data_is_encoding(VALUE obj)
static VALUE
enc_new(rb_encoding *encoding)
{
return TypedData_Wrap_Struct(rb_cEncoding, &encoding_data_type, (void *)encoding);
VALUE enc = TypedData_Wrap_Struct(rb_cEncoding, &encoding_data_type, (void *)encoding);
rb_obj_freeze(enc);
FL_SET_RAW(enc, RUBY_FL_SHAREABLE);
return enc;
}
static void