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 | |
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
-rw-r--r-- | CHANGELOG.rdoc | 5 | ||||
-rw-r--r-- | lib/psych/visitors/yaml_tree.rb | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index ea6c92d..9154a8e 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -1,3 +1,8 @@ +Wed May 16 01:15:45 2012 Aaron Patterson <aaron@tenderlovemaking.com> + + * ext/psych/lib/psych/visitors/yaml_tree.rb: keep a reference to + custom coders so that GC does not impact dumped yaml reference ids. + Mon Apr 30 04:43:53 2012 Aaron Patterson <aaron@tenderlovemaking.com> * ext/psych/lib/psych/json/yaml_events.rb: implicit styles should not 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 |