diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-10-19 10:26:54 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2005-10-19 10:26:54 +0000 |
commit | d53ad837dde3b6a29cefa9e209ad2d9af26be5c9 (patch) | |
tree | bc2c91136a202ffe99fff45cb3bf2efe562e52c5 /parse.y | |
parent | aa9c627fd2ecb9d9f48e7aebe21f6b19eb7b614e (diff) |
* parse.y (rb_gc_mark_parser): get rid of segfault with old yacc.
fixed: [ruby-dev:27439]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -2467,6 +2467,10 @@ terms : term none : /* none */ {$$ = 0;} ; %% +#ifdef yystacksize +#undef YYMALLOC +#endif + #include "regex.h" #include "util.h" @@ -5756,7 +5760,12 @@ ruby_parser_stack_on_heap() void rb_gc_mark_parser() { +#if defined YYMALLOC rb_gc_mark((VALUE)parser_heap); +#elif defined yystacksize + if (yyvsp) rb_gc_mark_locations((VALUE *)yyvs, (VALUE *)yyvsp); +#endif + if (!ruby_in_compile) return; rb_gc_mark_maybe((VALUE)yylval.node); |