From 478a7ac57bf802c11ff5d60fd547f5b2530691b4 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Tue, 21 Jun 2011 11:23:56 -0700 Subject: fixing cyclic object reference handling. Thanks to @CvX for the test. fixes #19 --- lib/psych/visitors/to_ruby.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/psych/visitors/to_ruby.rb b/lib/psych/visitors/to_ruby.rb index 2562816..b8eb698 100644 --- a/lib/psych/visitors/to_ruby.rb +++ b/lib/psych/visitors/to_ruby.rb @@ -182,7 +182,6 @@ module Psych when /^!ruby\/object:?(.*)?$/ name = $1 || 'Object' obj = revive((resolve_class(name) || Object), o) - @st[o.anchor] = obj if o.anchor obj when /^!map:(.*)$/, /^!ruby\/hash:(.*)$/ @@ -233,6 +232,7 @@ module Psych def revive klass, node s = klass.allocate + @st[node.anchor] = s if node.anchor h = Hash[*node.children.map { |c| accept c }] init_with(s, h, node) end -- cgit v1.2.3