On Friday 05 October 2007 14:02:32 [EMAIL PROTECTED] wrote: > Author: allison > Date: Fri Oct 5 14:02:31 2007 > New Revision: 21891 > > Modified: > branches/pdd15oo/src/pmc/namespace.pmc > > Log: > [pdd15oo] The namespace PMC adds methods and vtable overrides to the class > if it's associated with a class.
> Modified: branches/pdd15oo/src/pmc/namespace.pmc > =========================================================================== >=== --- branches/pdd15oo/src/pmc/namespace.pmc (original) > +++ branches/pdd15oo/src/pmc/namespace.pmc Fri Oct 5 14:02:31 2007 > @@ -182,6 +182,7 @@ > Parrot_NSInfo *nsinfo = PARROT_NSINFO(SELF); > PMC *vtable = nsinfo->vtable; > Parrot_sub *sub = PMC_sub(value); > + PMC * const classobj = VTABLE_get_class(interp, SELF); > > /* Handle vtable methods with two underscores at the start. */ > if (sub->vtable_index == -1) { > @@ -202,9 +203,14 @@ > /* Insert it. */ > VTABLE_set_pmc_keyed_int(INTERP, vtable, > sub->vtable_index, value); > + > + /* Insert it in class, if there is a class */ > + if (!PMC_IS_NULL(classobj) && > PObj_is_class_TEST(classobj)) + > VTABLE_add_vtable_override(interp, classobj, key, value); } Is there a reason why classobj would *not* be a class if it's not PMCNULL? I don't understand this additional test. -- c