Skip to content

Commit d218fb9

Browse files
committed
Add notes
1 parent 9abedae commit d218fb9

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

internal/imemo.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff 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;

variable.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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:

0 commit comments

Comments
 (0)