summaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:45:14 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-01-30 12:45:14 +0000
commit1ca6da8d801eb6111a27e9efc481d76abc48f858 (patch)
tree2f29b987f59d38e0654b5cb438b14511948b19c5 /compile.c
parent3efa5181dc7f2226daf2bc0d09ae1e73cd3a7601 (diff)
merges r25266 from trunk into ruby_1_9_1.
-- * compile.c (ADD_TRACE): fire coverage event in ensure clause. [ruby-dev:39303] * iseq.h, iseq.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@26476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/compile.c b/compile.c
index 650424a70e..d910e22ea8 100644
--- a/compile.c
+++ b/compile.c
@@ -219,8 +219,9 @@ PRINTF_ARGS(void ruby_debug_printf(const char*, ...), 1, 2);
#define ADD_TRACE(seq, line, event) \
do { \
if ((event) == RUBY_EVENT_LINE && iseq->coverage && \
- RARRAY_PTR(iseq->coverage)[(line) - 1] == Qnil) { \
+ (line) != iseq->compile_data->last_coverable_line) { \
RARRAY_PTR(iseq->coverage)[(line) - 1] = INT2FIX(0); \
+ iseq->compile_data->last_coverable_line = (line); \
ADD_INSN1(seq, line, trace, INT2FIX(RUBY_EVENT_COVERAGE)); \
} \
if (iseq->compile_data->option->trace_instruction) { \