summaryrefslogtreecommitdiff
path: root/iseq.h
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-12-01 16:10:11 -0500
committerPeter Zhu <peter@peterzhu.ca>2023-12-02 09:06:03 -0500
commitd1691617d6d6a115db52e7861f584fe98039ed1b (patch)
tree67c3a47c05e876f8ff016c759c1e5e4a7bc407f6 /iseq.h
parent092a17e7bd97525904c2874228a7febcaea74bf7 (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.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/iseq.h b/iseq.h
index 1ad07e9065..5d17bb5d5b 100644
--- a/iseq.h
+++ b/iseq.h
@@ -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);