Skip to content

Commit c2bda5c

Browse files
jhawthornk0kubun
authored andcommitted
Add write barrier for hash in obj_traverse_i
We are inserting directly into the st_table, so we need to issue a write barrier from the hash.
1 parent e1081f3 commit c2bda5c

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

ractor.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2911,6 +2911,7 @@ obj_traverse_i(VALUE obj, struct obj_traverse_data *data)
29112911
// already traversed
29122912
return 0;
29132913
}
2914+
RB_OBJ_WRITTEN(data->rec_hash, Qundef, obj);
29142915

29152916
struct obj_traverse_callback_data d = {
29162917
.stop = false,
@@ -3357,6 +3358,8 @@ obj_traverse_replace_i(VALUE obj, struct obj_traverse_replace_data *data)
33573358
}
33583359
else {
33593360
st_insert(obj_traverse_replace_rec(data), (st_data_t)obj, replacement);
3361+
RB_OBJ_WRITTEN(data->rec_hash, Qundef, obj);
3362+
RB_OBJ_WRITTEN(data->rec_hash, Qundef, replacement);
33603363
}
33613364

33623365
if (!data->move) {

0 commit comments

Comments
 (0)