summaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-13 06:42:05 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-09-13 06:42:05 +0000
commit73c8bfa6482b6ca63710c0d913d25e7dc8bba378 (patch)
tree0254db1a009ab8fa40a990f32c9eaccbebe94654 /compile.c
parent458c4e98aad847abdfaf9b5260b065ed161360bc (diff)
* compile.c (iseq_compile_each): inline cache entries are overwritten
in iseq_build_body(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/compile.c b/compile.c
index 708556f2a1..0174943968 100644
--- a/compile.c
+++ b/compile.c
@@ -3843,8 +3843,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
LABEL *lend = NEW_LABEL(nd_line(node));
ADD_LABEL(ret, lstart);
- ADD_INSN2(ret, nd_line(node), getinlinecache,
- NEW_INLINE_CACHE_ENTRY(), lend);
+ ADD_INSN2(ret, nd_line(node), getinlinecache, 0, lend);
ADD_INSN1(ret, nd_line(node), getconstant, ID2SYM(node->nd_vid));
ADD_INSN1(ret, nd_line(node), setinlinecache, lstart);
ADD_LABEL(ret, lend);
@@ -3998,8 +3997,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
LABEL *lend = NEW_LABEL(nd_line(node));
ADD_LABEL(ret, lstart);
- ADD_INSN2(ret, nd_line(node), onceinlinecache,
- NEW_INLINE_CACHE_ENTRY(), lend);
+ ADD_INSN2(ret, nd_line(node), onceinlinecache, 0, lend);
ADD_INSN(ret, nd_line(node), pop);
compile_dstr(iseq, ret, node);
@@ -4162,8 +4160,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
if (LIST_SIZE_ZERO(pref)) {
if (iseq->compile_data->option->inline_const_cache) {
ADD_LABEL(ret, lstart);
- ADD_INSN2(ret, nd_line(node), getinlinecache,
- NEW_INLINE_CACHE_ENTRY(), lend);
+ ADD_INSN2(ret, nd_line(node), getinlinecache, 0, lend);
}
else {
ADD_INSN(ret, nd_line(node), putnil);
@@ -4201,8 +4198,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
/* add cache insn */
if (iseq->compile_data->option->inline_const_cache) {
ADD_LABEL(ret, lstart);
- ADD_INSN2(ret, nd_line(node), getinlinecache,
- NEW_INLINE_CACHE_ENTRY(), lend);
+ ADD_INSN2(ret, nd_line(node), getinlinecache, 0, lend);
ADD_INSN(ret, nd_line(node), pop);
}