Simon Glover <[EMAIL PROTECTED]> wrote:
Dan,
Firstly, when your doing the initialization for a new ParrotClass PMC, you create an Array to hold various other PMCs, but you don't size the array; this means that when you later try to put things in it in Parrot_new_class, it dies with:
Array index out of bounds!
I would use an SArray. Its simpler then an Array.
Point taken, and I've patched the patch from Simon.
Also the DOD flag is bogus. An Array is not a buffer of PMCs. Its a ptr to a PMC in data: PObj_is_PMC_ptr_FLAG.
Gah. Thinko on my part. (I really want that thing hanging off the data pointer to be a buffer not a PMC...)
> .... For instance, in findclass, you have:
if (VTABLE_get_pmc_keyed(interpreter, interpreter->class_hash, key_new_string(interpreter, $2))) { $1 = 1; } else { $1 = 0; }
this should be VTABLE_exists_keyed ...
Point. Updated.
And the second find_class op should be get_class.
D'oh! Fixed too. (This would all be why I don't commit much code)
And s/obj\.u\.int_val/cache.int_val/g
Ah, I see. Changed as well. -- Dan
--------------------------------------"it's like this"------------------- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk