diff options
author | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-06-05 04:43:05 +0000 |
---|---|---|
committer | why <why@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-06-05 04:43:05 +0000 |
commit | 017d4ff10ae32ed6570b5d33a8106bd1f22e008f (patch) | |
tree | c0485110aa5ea341f821cb6bfa210041b71813e3 /ext/syck/rubyext.c | |
parent | 45c7ea552d0293aa217bbb496d4238754ba701d2 (diff) |
* ext/syck/token.c: directives choked on a period.
* ext/syck/gram.y: anchors work above a collection. [ruby-core:1071]
* ext/syck/handler.c, ext/syck/syck.c: ensure a fresh strtable between
parser iterations.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/syck/rubyext.c')
-rw-r--r-- | ext/syck/rubyext.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index 4d5fdb18d6..df4d4703b9 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -438,6 +438,14 @@ rb_syck_ensure(parser) return 0; } +static void +syck_mark_parser(parser) + SyckParser *parser; +{ + rb_gc_mark(parser->root); + rb_gc_mark(parser->root_on_error); +} + /* * YAML::Syck::Parser.new */ @@ -451,7 +459,7 @@ syck_parser_new(argc, argv, class) SyckParser *parser = syck_new_parser(); rb_scan_args(argc, argv, "01", &options); - pobj = Data_Wrap_Struct( class, 0, syck_free_parser, parser ); + pobj = Data_Wrap_Struct( class, syck_mark_parser, syck_free_parser, parser ); syck_parser_set_root_on_error( parser, Qnil ); |