Move function to static inline so we don't have leaked globals

This function shouldn't leak and is only needed during instruction
assembly
This commit is contained in:
Aaron Patterson 2022-06-27 16:30:32 -07:00 committed by Aaron Patterson
parent e3ab525f69
commit 8d157bc806
Notes: git 2022-06-30 08:22:11 +09:00
3 changed files with 16 additions and 21 deletions

View file

@ -11,3 +11,19 @@ enum ruby_insn_type_chars {
<%= t %> = '<%= c %>',
% end
};
static inline union iseq_inline_storage_entry * ISEQ_IS_ENTRY_START(const struct rb_iseq_constant_body *body, char op_type) {
unsigned int relative_ic_offset = 0;
switch(op_type) {
case TS_IC:
relative_ic_offset += body->ise_size;
case TS_ISE:
relative_ic_offset += body->ivc_size;
case TS_IVC:
case TS_ICVARC:
break;
default:
rb_bug("Wrong op type");
}
return &body->is_entries[relative_ic_offset];
}