summaryrefslogtreecommitdiff
path: root/iseq.c
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2020-09-22 18:24:55 -0400
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:23 -0400
commit265c5ca8b1ec599f609ea690bfd41f93f4d38cb1 (patch)
tree1bb17cc3cbc6eecc8cb07b5657060bbdd63bc96d /iseq.c
parent5bcba2a5ee5d331f6979fcaff11ac00ee15d7508 (diff)
Avoid triggering GC while translating threaded code
Diffstat (limited to 'iseq.c')
-rw-r--r--iseq.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/iseq.c b/iseq.c
index ca3c551beb..19fd8fcb18 100644
--- a/iseq.c
+++ b/iseq.c
@@ -163,6 +163,7 @@ static int
iseq_extract_values(VALUE *code, size_t pos, iseq_value_itr_t * func, void *data, rb_vm_insns_translator_t * translator)
{
VALUE insn = translator((void *)code[pos]);
+ if (insn >= VM_INSTRUCTION_SIZE) rb_bug("invalid insn. translator=%p addr2insn=%p", (void *)translator, (void*)rb_vm_insn_addr2insn2);
int len = insn_len(insn);
int op_no;
const char *types = insn_op_types(insn);