diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-12-01 16:10:11 -0500 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-12-02 09:06:03 -0500 |
commit | d1691617d6d6a115db52e7861f584fe98039ed1b (patch) | |
tree | 67c3a47c05e876f8ff016c759c1e5e4a7bc407f6 /iseq.h | |
parent | 092a17e7bd97525904c2874228a7febcaea74bf7 (diff) |
Pin instruction storage
The operands in each instruction needs to be pinned because if
auto-compaction runs in iseq_set_sequence, then the objects could exist
on the generated_iseq buffer, which would not be reference updated which
can lead to T_MOVED (and subsequently T_NONE) objects on the iseq.
Diffstat (limited to 'iseq.h')
-rw-r--r-- | iseq.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -189,7 +189,7 @@ VALUE *rb_iseq_original_iseq(const rb_iseq_t *iseq); void rb_iseq_build_from_ary(rb_iseq_t *iseq, VALUE misc, VALUE locals, VALUE args, VALUE exception, VALUE body); -void rb_iseq_mark_and_move_insn_storage(struct iseq_compile_data_storage *arena); +void rb_iseq_mark_and_pin_insn_storage(struct iseq_compile_data_storage *arena); VALUE rb_iseq_load(VALUE data, VALUE parent, VALUE opt); VALUE rb_iseq_parameters(const rb_iseq_t *iseq, int is_proc); |