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

* 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
This commit is contained in:
ko1 2015-12-02 08:11:27 +00:00
parent 417240b7fb
commit a9c0cf4ff0
4 changed files with 11 additions and 3 deletions

View file

@ -1,3 +1,11 @@
Wed Dec 2 17:10:32 2015 Koichi Sasada <ko1@atdot.net>
* 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 <ko1@atdot.net>
* iseq.h: introduce ISEQ_COVERAGE() and ISEQ_COVERAGE_SET() macro.

View file

@ -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));

2
iseq.h
View file

@ -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 */

View file

@ -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) */