On Thursday 07 February 2008 17:50:45 chromatic wrote: > There are Parrot_clone_vtable() calls in all the places I expect, but > there's a misassignment somewhere that's apparently doing the wrong thing.
... and the culprit is init_class_from_hash(), in the Class PMC, which cloned the parent's vtable but didn't also clone the ro_variant_vtable member of that vtable. Fixed in r25598. I suspect that Parrot_clone_vtable() probably should also clone that member, as I can't imagine a situation where we don't want a complete clone. I also wonder how much duplication there is between init_class_from_hash() and parrot_class_register() in src/oo.c. Someone might look into that for a good opportunity to delete more nearly-identical code. -- c