petdance/scratch — Issue #659: Unify VTABLE_invoke semantics between PMC types
Author: petdance
Created: 2011-11-14 06:12:07+00:00
State: open
Labels: core, Pri-normal, Sev-medium, todo

For most subs it simply sets up the environment for invocation, and selects the first opcode instruction of the sub as the next 'opcode_t *' for 'runops'. For NCI subs it actually invokes the function pointer. The disjoint means that NCI subs can't be invoked from C argument lists the same way as all the other subs (because the regular C argument list passing can only happen *after* VTABLE_invoke has been called to set up the environment, but NCI requires the arguments to be passed *before* the call to VTABLE_invoke).
See also the CallingConventionsTasklist

Originally http://trac.parrot.org/parrot/ticket/1094 by whiteknight (@Whiteknight)