I've just fallen into this trap, and I doubt I'll be the last one: void Parrot_PMC_set_intval_intkey(Parrot_INTERP interp, Parrot_PMC pmc, Parrot_Int value, Parrot_Int key) { VTABLE_set_integer_keyed_int(interp, pmc, key, value); }
Is there any reason why the vtable is key, value but the extension interface is value, key? This parameter transposition strikes me as asking for trouble. I'll patch everything in core to make value last if consensus is that this is the right thing to do. Nicholas Clark