summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-06 02:58:55 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-06 02:58:55 +0000
commit26ab7569388f5ac6278b42c75ad7de883e41a49a (patch)
treea968f9af584ba01059ff7f74af551f709c7e7c90 /parse.y
parentce65f8df71b609bc39d75b0877184aea19e0ea90 (diff)
* parse.y (rb_gc_mark_parser): should mark all global variables in parse.y.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@2807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 8 insertions, 4 deletions
diff --git a/parse.y b/parse.y
index 7ab008e7d2..644be83dfc 100644
--- a/parse.y
+++ b/parse.y
@@ -5052,9 +5052,14 @@ ruby_parser_stack_on_heap()
void
rb_gc_mark_parser()
{
- if (ruby_in_compile) {
- rb_gc_mark_maybe(yylval.val);
- }
+ if (!ruby_in_compile) return;
+
+ rb_gc_mark_maybe(yylval.val);
+ rb_gc_mark((VALUE)ruby_eval_tree_begin);
+ rb_gc_mark((VALUE)ruby_eval_tree);
+ rb_gc_mark(ruby_debug_lines);
+ rb_gc_mark(lex_lastline);
+ rb_gc_mark(lex_input);
}
void
@@ -5140,7 +5145,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);
}
ID