summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-29 16:02:58 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-29 16:02:58 +0000
commit9480a184116d83ba311e6df99584dda71b111f7c (patch)
tree10436e0300129fe4881f7a2f645023502c023a45 /parse.y
parentc3fda337a0eeaae4ae06eb15c1467baa32226735 (diff)
* parse.y (token_info_push, token_info_pop): do nothing for evaled
source. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19631 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 463b77e993..ad4c8c3c6b 100644
--- a/parse.y
+++ b/parse.y
@@ -4814,8 +4814,10 @@ token_info_has_nonspaces(struct parser_params *parser, const char *token)
static void
token_info_push(struct parser_params *parser, const char *token)
{
- token_info *ptinfo = ALLOC(token_info);
+ token_info *ptinfo;
+ if (compile_for_eval) return;
+ ptinfo = ALLOC(token_info);
ptinfo->token = token;
ptinfo->linenum = ruby_sourceline;
ptinfo->column = token_info_get_column(parser, token);
@@ -4831,6 +4833,7 @@ token_info_pop(struct parser_params *parser, const char *token)
int linenum;
token_info *ptinfo = parser->parser_token_info;
+ if (!ptinfo) return;
parser->parser_token_info = ptinfo->next;
if (token_info_get_column(parser, token) == ptinfo->column) { /* OK */
goto finish;