From: Nobuyoshi Nakada Date: 2009-12-28T10:19:25+09:00 Subject: [ruby-core:27337] Re: [Bug #1744] Error with Marshal dump/load on a delegated class. Hi, At Thu, 24 Dec 2009 13:14:43 +0900, Marc-Andre Lafortune wrote in [ruby-core:27306]: > Fixed also in 1.8 with r26164. This particular example worked > in 1.8 because DelegateClass does not return a subclass of > Delegator in 1.8, but the same bug existed for > SimpleDelegator, for example. > > Also added basic RubySpec for this. This change has broken marshal format comatibility. $ cat d.rb require 'delegate' class A < DelegateClass(Array) end $ ruby -v ruby 1.9.2dev (2009-12-19 trunk 26127) [universal.x86_64-darwin9.0] $ ./ruby -v ruby 1.9.2dev (2009-12-23 trunk 26157) [universal.x86_64-darwin9.0] $ ruby -I. -rd -e 'Marshal.dump(A.new([]), STDOUT)' | ./ruby -I. -rd -e 'p Marshal.load(STDIN)' /Users/nobu/src/ruby/ruby-1.9.2/src/lib/delegate.rb:195:in `marshal_load': undefined method `each_with_index' for nil:NilClass (NoMethodError) from -e:1:in `load' from -e:1:in `
' -- Nobu Nakada