PARROT_EXPORT PARROT_CAN_RETURN_NULL PMC* Parrot_pcc_get_sub(PARROT_INTERP, ARGIN(PMC *ctx)) { ASSERT_ARGS(Parrot_pcc_get_sub) const Parrot_Context *c = CONTEXT_STRUCT(ctx); return c->current_sub; }
/* =item C<void Parrot_pcc_set_sub(PARROT_INTERP, PMC *ctx, PMC *sub)> Set Sub executed inside Context. =cut */ PARROT_EXPORT void Parrot_pcc_set_sub(PARROT_INTERP, ARGIN(PMC *ctx), ARGIN_NULLOK(PMC *sub)) { ASSERT_ARGS(Parrot_pcc_set_sub) Parrot_Context * const c = CONTEXT_STRUCT(ctx); c->current_sub = sub; if (sub && !PMC_IS_NULL(sub)) { Parrot_Sub_attributes *subattr; PMC_get_sub(interp, sub, subattr); c->current_pc = subattr->seg->base.data + subattr->start_offs; c->current_HLL = subattr->HLL_id; c->current_namespace = subattr->namespace_stash; } } /*