summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/ractor.c b/ractor.c
index 93a1fc59fd..2cf34cb392 100644
--- a/ractor.c
+++ b/ractor.c
@@ -2065,18 +2065,14 @@ rb_obj_traverse(VALUE obj,
static int
frozen_shareable_p(VALUE obj)
{
- switch (BUILTIN_TYPE(obj)) {
- case T_DATA:
- if (RTYPEDDATA_P(obj)) {
- const rb_data_type_t *type = RTYPEDDATA_TYPE(obj);
- if (type->flags & RUBY_TYPED_FROZEN_SHAREABLE) {
- return true;
- }
- }
- return false;
- default:
+ if (!RB_TYPE_P(obj, T_DATA) ||
+ (RTYPEDDATA_P(obj) &&
+ RTYPEDDATA_TYPE(obj)->flags & RUBY_TYPED_FROZEN_SHAREABLE)) {
return true;
}
+ else {
+ return false;
+ }
}
static int