diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-15 09:25:23 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-15 09:25:23 -0700 |
commit | 1606060069c13b2bcdc672a1a0e89202a9eb5166 (patch) | |
tree | 67d96403bd6a8fb3545fe6674498c61ebfbf8872 /lib | |
parent | 9316aa38859492b06f4339336184fd303a033530 (diff) | |
download | psych-1606060069c13b2bcdc672a1a0e89202a9eb5166.zip |
* ext/psych/lib/psych/visitors/yaml_tree.rb: keep a reference to
custom coders so that GC does not impact dumped yaml reference ids.
Fixes #60
Diffstat (limited to 'lib')
-rw-r--r-- | lib/psych/visitors/yaml_tree.rb | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/psych/visitors/yaml_tree.rb b/lib/psych/visitors/yaml_tree.rb index 80af046..646fed7 100644 --- a/lib/psych/visitors/yaml_tree.rb +++ b/lib/psych/visitors/yaml_tree.rb @@ -20,6 +20,7 @@ module Psych @st = {} @ss = ss @options = options + @coders = [] @dispatch_cache = Hash.new do |h,klass| method = "visit_#{(klass.name || '').split('::').join('_')}" @@ -406,6 +407,7 @@ module Psych end def dump_coder o + @coders << o tag = Psych.dump_tags[o.class] unless tag klass = o.class == Object ? nil : o.class.name |