Redo the ivtable lookp once the ivar is set

This commit is contained in:
Maxime Chevalier-Boisvert 2021-08-25 16:51:41 -04:00 коммит произвёл Alan Wu
Родитель b3e993a64b
Коммит 0562459473
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -1446,7 +1446,9 @@ gen_get_ivar(jitstate_t *jit, ctx_t *ctx, const int max_chain_depth, VALUE compt
if (!iv_index_tbl || !rb_iv_index_tbl_lookup(iv_index_tbl, id, &ent)) {
rb_ivar_set(comptime_receiver, id, Qundef);
iv_index_tbl = ROBJECT_IV_INDEX_TBL(comptime_receiver);
RUBY_ASSERT(iv_index_tbl && rb_iv_index_tbl_lookup(iv_index_tbl, id, &ent));
RUBY_ASSERT(iv_index_tbl);
// Redo the lookup
RUBY_ASSERT_ALWAYS(rb_iv_index_tbl_lookup(iv_index_tbl, id, &ent));
}
uint32_t ivar_index = ent->index;