This project is closed and read-only.
Backport #8043
closedMarshal will dump some object with singleton methods
Updated by nobu (Nobuyoshi Nakada) over 13 years ago
- Description updated (diff)
But extended objects are allowed, aren't they?
Updated by marcandre (Marc-Andre Lafortune) over 13 years ago
My understanding is that objects whose singleton classes have included / prepended classes should be dumpable & loadable, but if the singleton class itself has proper instance methods it can't be dumped.
In the example I gave, the first TypeError is ok, since o's singleton class has a :foo method.
Prepending a module should not make it suddenly dumpable.
The check for this is in w_extended is incorrect. If I'm not mistaken, it assumes that the singleton class is first in the ancestry chain, which is no longer necessarily the case.
Updated by nobu (Nobuyoshi Nakada) over 13 years ago
Thank you, I misread that `o' would be different object.
I'll fix it.
Updated by nobu (Nobuyoshi Nakada) over 13 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r39650.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
marshal.c: check for prepended
- marshal.c (w_extended): check for prepended object.
[ruby-core:53206] [Bug #8043]
Updated by nobu (Nobuyoshi Nakada) over 13 years ago
- Tracker changed from Bug to Backport
- Project changed from Ruby to 15
- Category deleted (
core) - Status changed from Closed to Assigned
- Assignee set to nagachika (Tomoyuki Chikanaga)
- Target version deleted (
2.1.0)
Updated by nagachika (Tomoyuki Chikanaga) over 13 years ago
- Status changed from Assigned to Closed
This issue was solved with changeset r40087.
Marc-Andre, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.
merge revision(s) 39650: [Backport #8043]
* marshal.c (w_extended): check for prepended object.
[ruby-core:53206] [Bug #8043]