Lexical-Types
view release on metacpan or search on metacpan
xsh_ck_replace(OP_PADSV, lt_ck_padsv, <_old_ck_padsv);
return;
}
static void xsh_user_local_setup(pTHX_ xsh_user_cxt_t *cxt) {
HV *stash;
stash = gv_stashpvn(XSH_PACKAGE, XSH_PACKAGE_LEN, 1);
newCONSTSUB(stash, "LT_THREADSAFE", newSVuv(XSH_THREADSAFE));
newCONSTSUB(stash, "LT_FORKSAFE", newSVuv(XSH_FORKSAFE));
cxt->default_meth = newSVpvn("TYPEDSCALAR", 11);
SvREADONLY_on(cxt->default_meth);
return;
}
static void xsh_user_local_teardown(pTHX_ xsh_user_cxt_t *cxt) {
SvREFCNT_dec(cxt->default_meth);
cxt->default_meth = NULL;
return;
}
static void xsh_user_global_teardown(pTHX) {
xsh_ck_restore(OP_PADANY, <_old_ck_padany);
xsh_ck_restore(OP_PADSV, <_old_ck_padsv);
ptable_map_free(lt_op_padxv_map);
lt_op_padxv_map = NULL;
#if XSH_HAS_PERL(5, 17, 6)
ptable_map_free(lt_op_padrange_map);
lt_op_padrange_map = NULL;
#endif
#ifdef USE_ITHREADS
MUTEX_DESTROY(<_op_map_mutex);
#endif
return;
}
/* --- XS ------------------------------------------------------------------ */
MODULE = Lexical::Types PACKAGE = Lexical::Types
PROTOTYPES: ENABLE
BOOT:
{
xsh_setup();
}
#if XSH_THREADSAFE
void
CLONE(...)
PROTOTYPE: DISABLE
PPCODE:
xsh_clone();
XSRETURN(0);
#endif
SV *
_tag(SV *code)
PROTOTYPE: $
CODE:
if (!SvOK(code))
code = NULL;
else if (SvROK(code))
code = SvRV(code);
RETVAL = xsh_hints_tag(code);
OUTPUT:
RETVAL
( run in 0.636 second using v1.01-cache-2.11-cpan-5511b514fd6 )