summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-06 02:44:51 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-06 02:44:51 +0000
commite389d3d1530e22be209afa7925deeb8409e225ae (patch)
tree56f93c87135e9ee80ba50fcc20c3f7ea1137d915 /parse.y
parent5ef74b512cd7e8878dfadb8cc2cebc45466aeb0a (diff)
* parse.y (rb_gc_mark_parser): should mark parse.y global variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 7 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index 0945560aa0..153f669514 100644
--- a/parse.y
+++ b/parse.y
@@ -5356,9 +5356,13 @@ ruby_parser_stack_on_heap()
void
rb_gc_mark_parser()
{
- if (ruby_in_compile) {
- rb_gc_mark_maybe((VALUE)yylval.node);
- }
+ if (!ruby_in_compile) return;
+
+ rb_gc_mark_maybe((VALUE)yylval.node);
+ rb_gc_mark((VALUE)ruby_eval_tree_begin);
+ rb_gc_mark((VALUE)ruby_eval_tree);
+ rb_gc_mark((VALUE)lex_lastline);
+ rb_gc_mark((VALUE)lex_strterm);
}
void
@@ -5443,8 +5447,6 @@ Init_sym()
{
sym_tbl = st_init_strtable_with_size(200);
sym_rev_tbl = st_init_numtable_with_size(200);
- rb_global_variable((VALUE*)&lex_lastline);
- rb_global_variable((VALUE*)&lex_strterm);
}
static ID last_id = LAST_TOKEN;