File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -289,7 +289,8 @@ rb_imemo_class_fields_ptr(VALUE obj_fields)
289289 }
290290
291291 RUBY_ASSERT (IMEMO_TYPE_P (obj_fields , imemo_class_fields ));
292- RUBY_ASSERT (!FL_TEST_RAW (obj_fields , OBJ_FIELD_COMPLEX ));
292+ // vm_getivar unconditionally ask for a fields ptr.
293+ // RUBY_ASSERT(!FL_TEST_RAW(obj_fields, OBJ_FIELD_COMPLEX));
293294
294295 if (RB_UNLIKELY (FL_TEST_RAW (obj_fields , OBJ_FIELD_EXTERNAL ))) {
295296 return IMEMO_OBJ_FIELDS (obj_fields )-> as .external .ptr ;
Original file line number Diff line number Diff line change @@ -1596,8 +1596,8 @@ obj_transition_too_complex(VALUE obj, st_table *table)
15961596 break ;
15971597 case T_CLASS :
15981598 case T_MODULE :
1599- old_fields = RCLASS_PRIME_FIELDS (obj );
16001599 rb_shape_set_shape_id (obj , shape_id );
1600+ // FIXME: RCLASS_SET_FIELDS_HASH allocates, if GC trigger `table` might be corrupted.
16011601 RCLASS_SET_FIELDS_HASH (obj , table );
16021602 break ;
16031603 default :
You can’t perform that action at this time.
0 commit comments