summaryrefslogtreecommitdiff
path: root/shape.h
diff options
context:
space:
mode:
authorJean Boussier <jean.boussier@gmail.com>2025-08-26 09:19:07 +0200
committerJean Boussier <jean.boussier@gmail.com>2025-08-26 13:44:59 +0200
commit14bdf4b57dcd3169a8717dc893fd1e1be897deeb (patch)
treecf7e21a3c2f7d6bd9fa53788b3bbecd2c2a3ea80 /shape.h
parent59c996797e16f45a3b91baa04083c2da3a1edfcb (diff)
Ensure T_OBJECT and T_IMEMO/fields have identical layout
Diffstat (limited to 'shape.h')
-rw-r--r--shape.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/shape.h b/shape.h
index 065d375907..3541b7baf4 100644
--- a/shape.h
+++ b/shape.h
@@ -351,6 +351,8 @@ ROBJECT_FIELDS_HASH(VALUE obj)
{
RBIMPL_ASSERT_TYPE(obj, RUBY_T_OBJECT);
RUBY_ASSERT(rb_shape_obj_too_complex_p(obj));
+ RUBY_ASSERT(!FL_TEST_RAW(obj, ROBJECT_EMBED));
+
return (st_table *)ROBJECT(obj)->as.heap.fields;
}
@@ -359,6 +361,8 @@ ROBJECT_SET_FIELDS_HASH(VALUE obj, const st_table *tbl)
{
RBIMPL_ASSERT_TYPE(obj, RUBY_T_OBJECT);
RUBY_ASSERT(rb_shape_obj_too_complex_p(obj));
+ RUBY_ASSERT(!FL_TEST_RAW(obj, ROBJECT_EMBED));
+
ROBJECT(obj)->as.heap.fields = (VALUE *)tbl;
}