parrotcode: The base vtable calling functions | |
Contents | C |
src/pmc.c - The base vtable calling functions
PARROT_API PARROT_CANNOT_RETURN_NULL PARROT_MALLOC PMC *pmc_new(PARROT_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.PARROT_API PARROT_CANNOT_RETURN_NULL PMC *pmc_reuse(PARROT_INTERP, NOTNULL(PMC *pmc), INTVAL new_type, SHIM(UINTVAL flags))
PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL static PMC *get_new_pmc_header(PARROT_INTERP, INTVAL base_type, UINTVAL flags)
PARROT_API PARROT_CANNOT_RETURN_NULL PMC *pmc_new_noinit(PARROT_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.PARROT_API PARROT_CANNOT_RETURN_NULL PMC *constant_pmc_new_noinit(PARROT_INTERP, INTVAL base_type)
base_type
.PARROT_API PARROT_CANNOT_RETURN_NULL PMC *constant_pmc_new(PARROT_INTERP, INTVAL base_type)
base_type
,
the call init
.PARROT_API PARROT_CANNOT_RETURN_NULL PMC *pmc_new_init(PARROT_INTERP, INTVAL base_type, NULLOK(PMC *init))
pmc_new()
,
but passes init
to the PMC's init_pmc()
method.PARROT_API PARROT_CANNOT_RETURN_NULL PMC *constant_pmc_new_init(PARROT_INTERP, INTVAL base_type, NULLOK(PMC *init))
constant_pmc_new
,
but passes init
to the PMC's init_pmc
method.PARROT_API INTVAL pmc_register(PARROT_INTERP, NOTNULL(STRING *name))
PARROT_API PARROT_WARN_UNUSED_RESULT INTVAL pmc_type(PARROT_INTERP, NOTNULL(STRING *name))
name
.PARROT_API INTVAL pmc_type_p(PARROT_INTERP, NOTNULL(PMC *name))
name
.PARROT_WARN_UNUSED_RESULT PARROT_CANNOT_RETURN_NULL static PMC *create_class_pmc(PARROT_INTERP, INTVAL type)
PARROT_API void Parrot_create_mro(PARROT_INTERP, INTVAL type)
PARROT_API void dod_register_pmc(PARROT_INTERP, NOTNULL(PMC *pmc))
void dod_unregister_pmc(PARROT_INTERP, NOTNULL(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.
|