From a9c0cf4ff06ecbda16b1fcf9d16cb252becd9453 Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 2 Dec 2015 08:11:27 +0000 Subject: * iseq.h: introduce ISEQ_FLIP_CNT_INCREMENT() macro. * compile.c (iseq_compile_each): use it. * vm_core.h: rename flip_cnt field to support this fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 8 ++++++++ compile.c | 2 +- iseq.h | 2 +- vm_core.h | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1fffd9945c..5649cbc230 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Dec 2 17:10:32 2015 Koichi Sasada + + * iseq.h: introduce ISEQ_FLIP_CNT_INCREMENT() macro. + + * compile.c (iseq_compile_each): use it. + + * vm_core.h: rename flip_cnt field to support this fix. + Wed Dec 2 17:05:15 2015 Koichi Sasada * iseq.h: introduce ISEQ_COVERAGE() and ISEQ_COVERAGE_SET() macro. diff --git a/compile.c b/compile.c index 63ad6802cd..a53d276c4c 100644 --- a/compile.c +++ b/compile.c @@ -5635,7 +5635,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped) rb_num_t cnt; VALUE key; - cnt = local_iseq->variable_body->flip_cnt++ + VM_SVAR_FLIPFLOP_START; + cnt = ISEQ_FLIP_CNT_INCREMENT(local_iseq) + VM_SVAR_FLIPFLOP_START; key = INT2FIX(cnt); ADD_INSN2(ret, line, getspecial, key, INT2FIX(0)); diff --git a/iseq.h b/iseq.h index 42ae4c8ce2..03cb8b3efb 100644 --- a/iseq.h +++ b/iseq.h @@ -26,7 +26,7 @@ rb_call_info_kw_arg_bytes(int keyword_len) #define ISEQ_COMPILE_DATA(iseq) (iseq)->compile_data_ #define ISEQ_COVERAGE(iseq) (iseq)->variable_body->coverage_ #define ISEQ_COVERAGE_SET(iseq, cov) RB_OBJ_WRITE((iseq), &(iseq)->variable_body->coverage_, cov) - +#define ISEQ_FLIP_CNT_INCREMENT(iseq) ((iseq)->variable_body->flip_cnt_++) RUBY_SYMBOL_EXPORT_BEGIN /* compile.c */ diff --git a/vm_core.h b/vm_core.h index 0d0f29196e..103b974afe 100644 --- a/vm_core.h +++ b/vm_core.h @@ -388,7 +388,7 @@ struct rb_iseq_constant_body { struct rb_iseq_variable_body { const VALUE coverage_; /* coverage array */ - rb_num_t flip_cnt; + rb_num_t flip_cnt_; /* original iseq, before encoding * used for debug/dump (TODO: union with compile_data) */ -- cgit v1.2.3