summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ext/syck/rubyext.c22
2 files changed, 13 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index de9589f521..1a1d74cbad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,8 @@
-Sat Aug 22 13:46:15 2009 Tanaka Akira <[email protected]>
+Sat Aug 22 15:07:23 2009 Tanaka Akira <[email protected]>
* 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 )
*/