Data-Util
view release on metacpan or search on metacpan
lib/Data/Util.xs view on Meta::CPAN
}
}
mro_method_changed_in(stash);
void
get_code_info(code)
CV* code
PREINIT:
GV* gv;
HV* stash;
PPCODE:
if( (gv = CvGV(code)) && isGV_with_GP(gv)
&& (stash = (GvSTASH(gv))) && HvNAME_get(stash) ){
if(GIMME_V == G_ARRAY){
EXTEND(SP, 2);
mPUSHs(newSVpvn_share(HvNAME_get(stash), HvNAMELEN_get(stash), 0U));
mPUSHs(newSVpvn_share(GvNAME(gv), GvNAMELEN(gv), 0U));
}
else{
SV* const sv = newSVpvf("%s::%s", HvNAME_get(stash), GvNAME(gv));
lib/Data/Util.xs view on Meta::CPAN
PREINIT:
/* Usage:
subroutine_modifier(code) # check
subroutine_modifier(code, property) # get
subroutine_modifier(code, property, subs) # set
*/
MAGIC* mg;
AV* modifiers; /* (before, around, after, original, current) */
SV* property;
const char* property_pv;
PPCODE:
mg = mg_find_by_vtbl((SV*)code, &modified_vtbl);
if(items == 1){ /* check only */
ST(0) = boolSV(mg);
XSRETURN(1);
}
if(!mg){
my_fail(aTHX_ "a modified subroutine", ST(0) /* ref to code */);
}
( run in 0.529 second using v1.01-cache-2.11-cpan-5511b514fd6 )