summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-17 04:23:06 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-17 04:23:06 +0000
commit13d3a280490bee122444b3398b6bd2a489c5ca08 (patch)
tree81da2bd46ba08322e1cc5b7004f73a921f4d0d1f /parse.y
parent897b2177c19cf2f0dc956b9b868191f5f4d29112 (diff)
merge revision(s) 47973: [Backport #10392]
* parse.y (parser_here_document): do not append already appended and disposed code fragment. [ruby-dev:48647] [Bug #10392] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@47989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y5
1 files changed, 4 insertions, 1 deletions
diff --git a/parse.y b/parse.y
index f51e8a4b92..00b1a4cba9 100644
--- a/parse.y
+++ b/parse.y
@@ -6458,7 +6458,10 @@ parser_here_document(struct parser_params *parser, NODE *here)
if (pend < lex_pend) rb_str_cat(str, "\n", 1);
lex_goto_eol(parser);
if (nextc() == -1) {
- if (str) dispose_string(str);
+ if (str) {
+ dispose_string(str);
+ str = 0;
+ }
goto error;
}
} while (!whole_match_p(eos, len, indent));