зеркало из https://github.com/github/ruby.git
iseq.c: set coverage at once
* iseq.c (prepare_iseq_build): set coverage at once, not repeatedly resetting. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
c3900ff4a8
Коммит
9871d88ee4
9
iseq.c
9
iseq.c
|
@ -267,6 +267,8 @@ prepare_iseq_build(rb_iseq_t *iseq,
|
||||||
const rb_iseq_t *parent, enum iseq_type type,
|
const rb_iseq_t *parent, enum iseq_type type,
|
||||||
const rb_compile_option_t *option)
|
const rb_compile_option_t *option)
|
||||||
{
|
{
|
||||||
|
VALUE coverage = Qfalse;
|
||||||
|
|
||||||
iseq->body->type = type;
|
iseq->body->type = type;
|
||||||
set_relation(iseq, parent);
|
set_relation(iseq, parent);
|
||||||
|
|
||||||
|
@ -296,15 +298,14 @@ prepare_iseq_build(rb_iseq_t *iseq,
|
||||||
ISEQ_COMPILE_DATA(iseq)->option = option;
|
ISEQ_COMPILE_DATA(iseq)->option = option;
|
||||||
ISEQ_COMPILE_DATA(iseq)->last_coverable_line = -1;
|
ISEQ_COMPILE_DATA(iseq)->last_coverable_line = -1;
|
||||||
|
|
||||||
ISEQ_COVERAGE_SET(iseq, Qfalse);
|
|
||||||
|
|
||||||
if (!GET_THREAD()->parse_in_eval) {
|
if (!GET_THREAD()->parse_in_eval) {
|
||||||
VALUE coverages = rb_get_coverages();
|
VALUE coverages = rb_get_coverages();
|
||||||
if (RTEST(coverages)) {
|
if (RTEST(coverages)) {
|
||||||
ISEQ_COVERAGE_SET(iseq, rb_hash_lookup(coverages, path));
|
coverage = rb_hash_lookup(coverages, path);
|
||||||
if (NIL_P(ISEQ_COVERAGE(iseq))) ISEQ_COVERAGE_SET(iseq, Qfalse);
|
if (NIL_P(coverage)) coverage = Qfalse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
ISEQ_COVERAGE_SET(iseq, coverage);
|
||||||
|
|
||||||
return Qtrue;
|
return Qtrue;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче