parrotcode: Delegate PMC | |
Contents | PMCs |
src/pmc/delegate.pmc - Delegate PMC
Delegate each and every function to parrot bytecode.
Almost all methods are auto-generated in lib/Parrot/Pmc2c.pm
static PMC *find_meth(Interp *interp, PMC *pmc, STRING *name)
name
.static PMC *find_or_die(Interp *interp, PMC *pmc, STRING *name)
find_meth()
with the arguments,
raising an exception if no method is found.All these functions to run code can leak a full parrot register file, as well as potentially permanently unroot some PMCs or strings, if the vtable method throws an exception. It really ought be caught rather than let flow through.
PARROT_INLINE static void noarg_noreturn(Interp *interp, PMC *obj, const char *meth, int die)
die
is true then an exception will be raised if the method is not found.void init()
__init()
method if it exists.PMC *instantiate(PMC *sig)
__instantiate
method if it exists.void *invoke(void *next)
|