diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-07 06:45:28 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-12-07 06:45:28 +0000 |
commit | 9bc20bef7a8ff177a385e9437c9005a895f93caa (patch) | |
tree | 4f0b8d40766015ad8549c595d1ec9022e5d534d2 /lib | |
parent | 62c94002ef73f284830fdda64c39b8acd87b6118 (diff) | |
download | ruby-9bc20bef7a8ff177a385e9437c9005a895f93caa.tar.gz |
* lib/pp.rb: use Hash for recursion check as inspect.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14129 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pp.rb | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -111,13 +111,13 @@ class PP < PrettyPrint 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 @@ class PP < PrettyPrint 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 @@ class PP < PrettyPrint 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 |