summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--compile.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3bde31c668..339c60c5bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Apr 9 10:53:00 2010 Kenta Murata <mrkn@mrkn.jp>
+
+ * compile.c (iseq_compile_each): stop hiding, and freeze unpopped
+ string nodes to allow method redefinition. [ruby-dev:40641]
+
Fri Apr 9 01:26:54 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* io.c (internal_{read,write}_func, rb_{read,write}_internal):
diff --git a/compile.c b/compile.c
index 8b73cbd92f..64411f90a0 100644
--- a/compile.c
+++ b/compile.c
@@ -4429,7 +4429,7 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
case NODE_STR:{
debugp_param("nd_lit", node->nd_lit);
if (!poped) {
- hide_obj(node->nd_lit);
+ OBJ_FREEZE(node->nd_lit);
ADD_INSN1(ret, nd_line(node), putstring, node->nd_lit);
}
break;