refactoring frozen_shareable_p

This commit is contained in:
Koichi Sasada 2020-10-21 23:57:44 +09:00
Родитель 89f6644de7
Коммит 3a97d36157
1 изменённых файлов: 6 добавлений и 10 удалений

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

@ -2065,18 +2065,14 @@ rb_obj_traverse(VALUE obj,
static int static int
frozen_shareable_p(VALUE obj) frozen_shareable_p(VALUE obj)
{ {
switch (BUILTIN_TYPE(obj)) { if (!RB_TYPE_P(obj, T_DATA) ||
case T_DATA: (RTYPEDDATA_P(obj) &&
if (RTYPEDDATA_P(obj)) { RTYPEDDATA_TYPE(obj)->flags & RUBY_TYPED_FROZEN_SHAREABLE)) {
const rb_data_type_t *type = RTYPEDDATA_TYPE(obj);
if (type->flags & RUBY_TYPED_FROZEN_SHAREABLE) {
return true;
}
}
return false;
default:
return true; return true;
} }
else {
return false;
}
} }
static int static int