summaryrefslogtreecommitdiffstats
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
commiteae28f888495b086420795a417267d977ca6d59c (patch)
tree0254db1a009ab8fa40a990f32c9eaccbebe94654
parentb05529a775af5d87b4946dea3f8d02e696e4d860 (diff)
downloadruby-eae28f888495b086420795a417267d977ca6d59c.tar.gz
ruby-eae28f888495b086420795a417267d977ca6d59c.tar.xz
ruby-eae28f888495b086420795a417267d977ca6d59c.zip
* compile.c (iseq_compile_each): inline cache entries are overwritten
in iseq_build_body(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--compile.c12
2 files changed, 9 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 8be7831c9..7f24b1f7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Sep 13 15:42:03 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * compile.c (iseq_compile_each): inline cache entries are overwritten
+ in iseq_build_body().
+
Thu Sep 13 14:00:15 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (brace_block): should use compstmt. patch submitted by
diff --git a/compile.c b/compile.c
index 708556f2a..017494396 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);
}