On Sat, Nov 04, 2006 at 05:18:22PM +0100, Leopold Toetsch wrote:
> Am Samstag, 4. November 2006 16:17 schrieb Patrick R. Michaud:
> > Because 'Match' doesn't define its own set_integer_keyed_int
> > vtable entry, it ought to be inheriting the one from Capture.
> > But unfortunately, the default.pmc function above gets in the
> > way, and redispatches the keyed_int call as a keyed call,
> 
> Class inheritance from PMCs is very static still (like PMC-only cases). I 
> hope 
> that the :vtable patches will provide the base for a better solution. For 
> now, you can only implement the mssing _integer_keyed cases in Match so that 
> default isn't triggered. 

I don't think that's possible, is it?  Match is implemented as a
subclass of Capture, as in:

    $P0 = subclass 'Capture', 'Match'

So, I can create the missing cases, but what do I put for the body
of the method to get to the corresponding method of Capture?

    .namespace [ 'Match' ]
    .sub set_integer_keyed_int :vtable
        .param int key
        .param int value

        # ... how to do set_integer_keyed_int method of Capture?

    .end


> We could of course remove the defaults too, but that 
> would need a very complete set of these keyed vtables on all PMCs.

How many of these would there be?  Doesn't this affect only those
classes that are built using ParrotObject ?

Pm

Reply via email to