Class-MethodCache
view release on metacpan or search on metacpan
MethodCache.xs view on Meta::CPAN
SvREFCNT_dec(GvCV(gv));
GvCV_set(gv, NULL);
GvCVGEN(gv) = 0;
SV *
get_cached_method (sv)
INPUT:
SV *sv
PREINIT:
GV *gv = sv_gv(sv);
PPCODE:
if ( GvCV(gv) && GvCVGEN(gv) == HvCURGEN(GvSTASH(gv)) )
XPUSHs(sv_2mortal(newRV_inc((SV *)GvCV(gv))));
else
XPUSHs(&PL_sv_undef);
void
set_cached_method (sv, cv_sv)
INPUT:
SV *sv
SV *cv_sv
MethodCache.xs view on Meta::CPAN
} else {
Perl_croak(aTHX_ "Setting a cached method in a cached GV might cause strange things to happen.");
}
SV *
get_cv (sv)
INPUT:
SV *sv
PREINIT:
GV *gv = sv_gv(sv);
PPCODE:
if ( GvCV(gv) )
XPUSHs(sv_2mortal(newRV_inc((SV *)GvCV(gv))));
else
XPUSHs(&PL_sv_undef);
SV *
set_cv (sv, cv_sv)
INPUT:
SV *sv
SV *cv_sv
PREINIT:
CV *cv;
GV *gv = sv_gv(sv);
PPCODE:
if ( !SvOK(cv_sv) ) {
cv = NULL;
} else if ( SvROK(cv_sv) && SvTYPE(SvRV(cv_sv)) == SVt_PVCV ) {
cv = (CV *)SvRV(cv_sv);
SvREFCNT_inc(cv);
} else {
Perl_croak(aTHX_ "set_cv accepts either a code reference or undef");
}
if ( GvCV(gv) )
( run in 2.169 seconds using v1.01-cache-2.11-cpan-71847e10f99 )