petdance/scratch — Issue #140: Unify VTABLE_invoke semantics between PMC types
Author: petdance
Created: 2011-11-01 04:24:59+00:00
State: open

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