[perl #59628] Calling 'Parrot_runops_fromc_args*' from within 'Parrot_pcc_invoke*' corrupts return signature

Andrew Whitworth via RT parrotbug-followup at parrotcode.org
Thu Dec 18 14:32:30 UTC 2008


On Sun Oct 05 02:44:57 2008, allison at perl.org wrote:
> The call to VTABLE_invoke on inter_call.c:2423 correctly dispatches to
> the scalar PMC's 'add' multi with a DEFAULT signature type, and starts
> executing it.

Besides some of the line number changes in that file recently, my trace
follows yours exactly until this point. I get the same failed assertion
that you were getting, but I appear to be getting it for a slightly
different reason after a difference in control flow here. The sub_obj
parameter to Parrot_pcc_invoke_from_sub_object for me is an NCI PMC.
VTABLE_invoke dispatches at this point to Parrot_NCI_invoke which does
some function pointer magic and then calls Parrot_init_arg_op and fails
the type check assertion at src/inter_call.c:390.

This definitely doesn't seem right to me.

--Andrew Whitworth


More information about the parrot-dev mailing list