aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--parse.y2
2 files changed, 7 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 3c7789f78b..a0b4959c93 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jun 18 16:43:44 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * parse.y (parser_heredoc_restore): clear lex_strterm always to get
+ rid of marking recycled node. this bug is revealed by r41372 with
+ GC.stress=true.
+
Tue Jun 18 12:53:25 2013 Tanaka Akira <akr@fsij.org>
* bignum.c (nlz): Cast the result explicitly.
diff --git a/parse.y b/parse.y
index d6a8a0374c..c69556f70e 100644
--- a/parse.y
+++ b/parse.y
@@ -6345,6 +6345,7 @@ parser_heredoc_restore(struct parser_params *parser, NODE *here)
{
VALUE line;
+ lex_strterm = 0;
line = here->nd_orig;
lex_lastline = line;
lex_pbeg = RSTRING_PTR(line);
@@ -6419,7 +6420,6 @@ parser_here_document(struct parser_params *parser, NODE *here)
#endif
restore:
heredoc_restore(lex_strterm);
- lex_strterm = 0;
return 0;
}
if (was_bol() && whole_match_p(eos, len, indent)) {