diff options
Diffstat (limited to 'iseq.c')
-rw-r--r-- | iseq.c | 40 |
1 files changed, 20 insertions, 20 deletions
@@ -74,7 +74,7 @@ rb_iseq_free(const rb_iseq_t *iseq) if (iseq) { if (iseq->body) { ruby_xfree((void *)iseq->body->iseq_encoded); - ruby_xfree((void *)iseq->body->line_info_table); + ruby_xfree((void *)iseq->body->insns_info); ruby_xfree((void *)iseq->body->local_table); ruby_xfree((void *)iseq->body->is_entries); @@ -157,7 +157,7 @@ iseq_memsize(const rb_iseq_t *iseq) size += sizeof(struct rb_iseq_constant_body); size += body->iseq_size * sizeof(VALUE); - size += body->line_info_size * sizeof(struct iseq_line_info_entry); + size += body->insns_info_size * sizeof(struct iseq_insn_info_entry); size += body->local_table_size * sizeof(ID); if (body->catch_table) { size += iseq_catch_table_bytes(body->catch_table->size); @@ -1217,45 +1217,45 @@ iseqw_to_a(VALUE self) /* TODO: search algorithm is brute force. this should be binary search or so. */ -static const struct iseq_line_info_entry * -get_line_info(const rb_iseq_t *iseq, size_t pos) +static const struct iseq_insn_info_entry * +get_insn_info(const rb_iseq_t *iseq, size_t pos) { - size_t i = 0, size = iseq->body->line_info_size; - const struct iseq_line_info_entry *table = iseq->body->line_info_table; + size_t i = 0, size = iseq->body->insns_info_size; + const struct iseq_insn_info_entry *insns_info = iseq->body->insns_info; const int debug = 0; if (debug) { printf("size: %"PRIuSIZE"\n", size); - printf("table[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n", - i, table[i].position, table[i].line_no, pos); + printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n", + i, insns_info[i].position, insns_info[i].line_no, pos); } if (size == 0) { - return 0; + return NULL; } else if (size == 1) { - return &table[0]; + return &insns_info[0]; } else { for (i=1; i<size; i++) { - if (debug) printf("table[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n", - i, table[i].position, table[i].line_no, pos); + if (debug) printf("insns_info[%"PRIuSIZE"]: position: %d, line: %d, pos: %"PRIuSIZE"\n", + i, insns_info[i].position, insns_info[i].line_no, pos); - if (table[i].position == pos) { - return &table[i]; + if (insns_info[i].position == pos) { + return &insns_info[i]; } - if (table[i].position > pos) { - return &table[i-1]; + if (insns_info[i].position > pos) { + return &insns_info[i-1]; } } } - return &table[i-1]; + return &insns_info[i-1]; } static unsigned int find_line_no(const rb_iseq_t *iseq, size_t pos) { - const struct iseq_line_info_entry *entry = get_line_info(iseq, pos); + const struct iseq_insn_info_entry *entry = get_insn_info(iseq, pos); if (entry) { return entry->line_no; @@ -2090,8 +2090,8 @@ iseq_data_to_ary(const rb_iseq_t *iseq) rb_ary_push(body, (VALUE)label); } - if (ti < iseq->body->line_info_size && iseq->body->line_info_table[ti].position == pos) { - line = iseq->body->line_info_table[ti].line_no; + if (ti < iseq->body->insns_info_size && iseq->body->insns_info[ti].position == pos) { + line = iseq->body->insns_info[ti].line_no; rb_ary_push(body, INT2FIX(line)); ti++; } |