1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

add experimental API.

* iseq.c (rb_iseq_code_range): added to access iseq's code range.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2017-12-21 06:40:28 +00:00
parent 05d1d29d1f
commit e9a184ed63
2 changed files with 10 additions and 0 deletions

9
iseq.c
View file

@ -771,6 +771,15 @@ rb_iseq_method_name(const rb_iseq_t *iseq)
}
}
void
rb_iseq_code_range(const rb_iseq_t *iseq, int *first_lineno, int *first_column, int *last_lineno, int *last_column)
{
if (first_lineno) *first_lineno = iseq->body->location.code_range.first_loc.lineno;
if (first_column) *first_column = iseq->body->location.code_range.first_loc.column;
if (last_lineno) *last_lineno = iseq->body->location.code_range.last_loc.lineno;;
if (last_column) *last_column = iseq->body->location.code_range.last_loc.column;
}
VALUE
rb_iseq_coverage(const rb_iseq_t *iseq)
{

1
iseq.h
View file

@ -189,6 +189,7 @@ VALUE rb_iseq_label(const rb_iseq_t *iseq);
VALUE rb_iseq_base_label(const rb_iseq_t *iseq);
VALUE rb_iseq_first_lineno(const rb_iseq_t *iseq);
VALUE rb_iseq_method_name(const rb_iseq_t *iseq);
void rb_iseq_code_range(const rb_iseq_t *iseq, int *first_lineno, int *first_column, int *last_lineno, int *last_column);
/* proc.c */
const rb_iseq_t *rb_method_iseq(VALUE body);