#199: fix handling of vtable methods
-------------------------+--------------------------------------------------
Reporter: whiteknight | Owner: whiteknight
Type: todo | Status: new
Priority: normal | Milestone: 0.9.1
Component: imcc | Version:
Severity: medium | Keywords:
Lang: | Patch:
Platform: all |
-------------------------+--------------------------------------------------
In object.pmc, all vtable overrides are invoked with
Parrot_call_meth_fromc_args. This function passes SELF as an invocant to
all vtable overrides in PIR. This means that any vtable interfaces that
aren't also flagged as being methods (either explicitly with :method or
implicitly by referencing self) will throw an exception because there are
too many parameters passed (the normal parameters + 1 for the invocant).
We should update vtable overrides in PIR to always be treated as if they
have :method as well. I can't imagine a use case where we actually don't
want a reference to the invocant to be passed. I think this should be
relatively easy to hack into IMCC, unless somebody comes up with a
disagreement.
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/199>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets