[前][次][番号順一覧][スレッド一覧]

ruby-changes:12891

From: akr <ko1@a...>
Date: Sat, 22 Aug 2009 15:24:05 +0900 (JST)
Subject: [ruby-changes:12891] Ruby:r24626 (trunk): YAML parser don't need identity hash.

akr	2009-08-22 15:23:48 +0900 (Sat, 22 Aug 2009)

  New Revision: 24626

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24626

  Log:
    YAML parser don't need identity hash.
    revert the part of previous commit.

  Modified files:
    trunk/ChangeLog
    trunk/ext/syck/rubyext.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 24625)
+++ ChangeLog	(revision 24626)
@@ -1,10 +1,8 @@
-Sat Aug 22 13:46:15 2009  Tanaka Akira  <akr@f...>
+Sat Aug 22 15:07:23 2009  Tanaka Akira  <akr@f...>
 
 	* 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.
Index: ext/syck/rubyext.c
===================================================================
--- ext/syck/rubyext.c	(revision 24625)
+++ ext/syck/rubyext.c	(revision 24626)
@@ -837,15 +837,6 @@
     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 @@
 
     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 @@
     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 @@
     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 )
  */

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]