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

ruby-changes:2638

From: ko1@a...
Date: 7 Dec 2007 15:48:25 +0900
Subject: [ruby-changes:2638] akr - Ruby:r14129 (trunk): * lib/pp.rb: use Hash for recursion check as inspect.

akr	2007-12-07 15:45:28 +0900 (Fri, 07 Dec 2007)

  New Revision: 14129

  Modified files:
    trunk/ChangeLog
    trunk/lib/pp.rb

  Log:
    * lib/pp.rb: use Hash for recursion check as inspect.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/pp.rb?r1=14129&r2=14128
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14129&r2=14128

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14128)
+++ ChangeLog	(revision 14129)
@@ -1,3 +1,7 @@
+Fri Dec  7 15:44:40 2007  Tanaka Akira  <akr@f...>
+
+	* lib/pp.rb: use Hash for recursion check as inspect.
+
 Fri Dec  7 15:04:01 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* array.c (flatten): some performance improvements, based on a patch
Index: lib/pp.rb
===================================================================
--- lib/pp.rb	(revision 14128)
+++ lib/pp.rb	(revision 14129)
@@ -111,13 +111,13 @@
       end
 
       if Thread.current[:__recursive_key__][:inspect] == nil
-        Thread.current[:__recursive_key__][:inspect] = []
+        Thread.current[:__recursive_key__][:inspect] = {}
       end
 
       save = Thread.current[:__recursive_key__][:inspect]
 
       begin
-        Thread.current[:__recursive_key__][:inspect] = []
+        Thread.current[:__recursive_key__][:inspect] = {}
         yield
       ensure
         Thread.current[:__recursive_key__][:inspect] = save
@@ -130,10 +130,10 @@
       Thread.current[:__recursive_key__][:inspect].include?(id)
     end
     def push_inspect_key(id)
-      Thread.current[:__recursive_key__][:inspect] << id
+      Thread.current[:__recursive_key__][:inspect][id] = true
     end
-    def pop_inspect_key
-      Thread.current[:__recursive_key__][:inspect].pop
+    def pop_inspect_key(id)
+      Thread.current[:__recursive_key__][:inspect].delete id
     end
 
     # Adds +obj+ to the pretty printing buffer
@@ -153,7 +153,7 @@
         push_inspect_key(id)
         group {obj.pretty_print self}
       ensure
-        pop_inspect_key unless PP.sharing_detection
+        pop_inspect_key(id) unless PP.sharing_detection
       end
     end
 

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

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