summaryrefslogtreecommitdiff
path: root/variable.c
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 /variable.c
parent59c996797e16f45a3b91baa04083c2da3a1edfcb (diff)
Ensure T_OBJECT and T_IMEMO/fields have identical layout
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/variable.c b/variable.c
index 6d172defdd..3e908dbe3c 100644
--- a/variable.c
+++ b/variable.c
@@ -1532,7 +1532,10 @@ obj_transition_too_complex(VALUE obj, st_table *table)
case T_OBJECT:
{
VALUE *old_fields = NULL;
- if (!(RBASIC(obj)->flags & ROBJECT_EMBED)) {
+ if (FL_TEST_RAW(obj, ROBJECT_EMBED)) {
+ FL_UNSET_RAW(obj, ROBJECT_EMBED);
+ }
+ else {
old_fields = ROBJECT_FIELDS(obj);
}
RBASIC_SET_SHAPE_ID(obj, shape_id);