[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-core
Subject:    [ruby-core:27337] Re: [Bug #1744] Error with Marshal dump/load on a delegated class.
From:       Nobuyoshi Nakada <nobu () ruby-lang ! org>
Date:       2009-12-28 1:19:25
Message-ID: 4b380799.8702be0a.63d1.1ab3 () mx ! google ! com
[Download RAW message or body]

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 `<main>'

-- 
Nobu Nakada


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic