parrotcode: The base vtable calling functions | |
Contents | C |
src/pmc.c - The base vtable calling functions
PMC *pmc_new(Interp *interp, INTVAL base_type)
base_type
(which is an index into the list of PMC types declared in vtables
in include/parrot/pmc.h).
Once the PMC has been successfully created and its vtable pointer initialized,
we call its init
method to perform any other necessary initialization.PMC *pmc_reuse(Interp *interp, PMC *pmc, INTVAL new_type, UINTVAL flags)
static PMC *get_new_pmc_header(Interp *interp, INTVAL base_type, UINTVAL flags)
PMC *pmc_new_noinit(Interp *interp, INTVAL base_type)
base_type
(which is an index into the list of PMC types declared in vtables
in include/parrot/pmc.h).
Unlike pmc_new()
,
pmc_new_noinit()
does not call its init
method.
This allows separate allocation and initialization for continuations.PMC *constant_pmc_new_noinit(Interp *interp, INTVAL base_type)
base_type
.PMC *constant_pmc_new(Interp *interp, INTVAL base_type)
base_type
,
the call init
.PMC *pmc_new_init(Interp *interp, INTVAL base_type, PMC *init)
pmc_new()
,
but passes init
to the PMC's init_pmc()
method.PMC *constant_pmc_new_init(Interp *interp, INTVAL base_type, PMC *init)
constant_pmc_new
,
but passes init
to the PMC's init_pmc
method.INTVAL pmc_register(Interp *interp, STRING *name)
INTVAL pmc_type(Interp *interp, STRING *name)
name
.void Parrot_create_mro(Interp *interp, INTVAL type)
void dod_register_pmc(Interp *interp, PMC *pmc)
void dod_unregister_pmc(Interp *interp, PMC *pmc)
include/parrot/vtable.h.
5.1.0.14.2.20011008152120.02158148@pop.sidhe.org
(http://www.nntp.perl.org/group/perl.perl6.internals/5516).
Initial version by Simon on 2001.10.20.
|