diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-22 06:23:48 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-08-22 06:23:48 +0000 |
commit | 97ed18f1da96c99e0482141d9331c6743352f33f (patch) | |
tree | 6ba63b06c5cab5b7bd3a70463442b3be0ee78e21 | |
parent | dfc3fccef31ace6f26ac96388a441b668abf092d (diff) | |
download | ruby-97ed18f1da96c99e0482141d9331c6743352f33f.tar.gz |
YAML parser don't need identity hash.
revert the part of previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ext/syck/rubyext.c | 22 |
2 files changed, 13 insertions, 15 deletions
@@ -1,10 +1,8 @@ -Sat Aug 22 13:46:15 2009 Tanaka Akira <akr@fsij.org> +Sat Aug 22 15:07:23 2009 Tanaka Akira <akr@fsij.org> * ext/syck/rubyext.c (id_hash_new): new function to create a hash which key is compared by object id. - (syck_parser_load): use id_hash_new for bonus->data. - (syck_parser_load_documents): ditto. - (syck_emitter_reset): ditto. + (syck_emitter_reset): use id_hash_new for bonus->data. * lib/yaml.rb (YAML.quick_emit): give the object itself to eimitter. don't use object_id and hash. diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c index 5b056f8e02..2f78b6ddaf 100644 --- a/ext/syck/rubyext.c +++ b/ext/syck/rubyext.c @@ -837,15 +837,6 @@ syck_parser_bufsize_get(VALUE self) return INT2FIX( parser->bufsize ); } -static VALUE -id_hash_new(void) -{ - VALUE hash; - hash = rb_hash_new(); - rb_funcall(hash, rb_intern("compare_by_identity"), 0); - return hash; -} - /* * YAML::Syck::Parser.load( IO or String ) */ @@ -865,7 +856,7 @@ syck_parser_load(int argc, VALUE *argv, VALUE self) bonus = (struct parser_xtra *)parser->bonus; bonus->taint = syck_parser_assign_io(parser, &port); - bonus->data = id_hash_new(); + bonus->data = rb_hash_new(); bonus->resolver = rb_attr_get( self, s_resolver ); if ( NIL_P( proc ) ) bonus->proc = 0; else bonus->proc = proc; @@ -898,7 +889,7 @@ syck_parser_load_documents(int argc, VALUE *argv, VALUE self) while ( 1 ) { /* Reset hash for tracking nodes */ - bonus->data = id_hash_new(); + bonus->data = rb_hash_new(); /* Parse a document */ v = syck_parse( parser ); @@ -1947,6 +1938,15 @@ syck_emitter_s_alloc(VALUE class) return pobj; } +static VALUE +id_hash_new(void) +{ + VALUE hash; + hash = rb_hash_new(); + rb_funcall(hash, rb_intern("compare_by_identity"), 0); + return hash; +} + /* * YAML::Syck::Emitter.reset( options ) */ |