summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-12 16:45:18 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-02-12 16:45:18 +0000
commitae6ba9f084b6605da010768d9d116f88cd04a81c (patch)
tree82d0b9960f670896b8d0127976f65f777d003203
parent11a4e69447e457d229477f427987da444a0c7ec3 (diff)
* compile.c (iseq_compile_each): just freeze xstr.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--compile.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 229fa055c7..eb5fd03e1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,10 @@
-Fri Feb 13 01:29:16 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Fri Feb 13 01:45:17 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* compile.c (iseq_set_sequence, compile_dstr_fragments),
(iseq_compile_each): hides other internal objects.
+ * compile.c (iseq_compile_each): just freeze xstr.
+
Fri Feb 13 00:48:42 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* insns.def (defineclass): try to autoload const to be overridden.
diff --git a/compile.c b/compile.c
index 4244a56f20..24a63e1d68 100644
--- a/compile.c
+++ b/compile.c
@@ -4371,7 +4371,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
break;
}
case NODE_XSTR:{
- hide_obj(node->nd_lit);
+ OBJ_FREEZE(node->nd_lit);
ADD_CALL_RECEIVER(ret, nd_line(node));
ADD_INSN1(ret, nd_line(node), putobject, node->nd_lit);
ADD_CALL(ret, nd_line(node), ID2SYM(idBackquote), INT2FIX(1));