diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | parse.y | 9 |
2 files changed, 14 insertions, 0 deletions
@@ -1,3 +1,8 @@ +Wed Oct 19 19:26:15 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (rb_gc_mark_parser): get rid of segfault with old yacc. + fixed: [ruby-dev:27439] + Wed Oct 19 08:28:32 2005 Nobuyoshi Nakada <nobu@ruby-lang.org> * file.c (rb_file_join): elements may contain null pointer strings. @@ -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); |