Skip to content

Commit eb2f79f

Browse files
jhawthornk0kubun
authored andcommitted
Add missing write barriers to ibf_load
Found by wbcheck
1 parent d2caeb1 commit eb2f79f

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

compile.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13665,9 +13665,13 @@ ibf_load_iseq_each(struct ibf_load *load, rb_iseq_t *iseq, ibf_offset_t offset)
1366513665
load_body->insns_info.positions = ibf_load_insns_info_positions(load, insns_info_positions_offset, insns_info_size);
1366613666
load_body->local_table = ibf_load_local_table(load, local_table_offset, local_table_size);
1366713667
load_body->catch_table = ibf_load_catch_table(load, catch_table_offset, catch_table_size);
13668-
load_body->parent_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)parent_iseq_index);
13669-
load_body->local_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)local_iseq_index);
13670-
load_body->mandatory_only_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)mandatory_only_iseq_index);
13668+
const rb_iseq_t *parent_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)parent_iseq_index);
13669+
const rb_iseq_t *local_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)local_iseq_index);
13670+
const rb_iseq_t *mandatory_only_iseq = ibf_load_iseq(load, (const rb_iseq_t *)(VALUE)mandatory_only_iseq_index);
13671+
13672+
RB_OBJ_WRITE(iseq, &load_body->parent_iseq, parent_iseq);
13673+
RB_OBJ_WRITE(iseq, &load_body->local_iseq, local_iseq);
13674+
RB_OBJ_WRITE(iseq, &load_body->mandatory_only_iseq, mandatory_only_iseq);
1367113675

1367213676
// This must be done after the local table is loaded.
1367313677
if (load_body->param.keyword != NULL) {

0 commit comments

Comments
 (0)