Package-Prototype
view release on metacpan or search on metacpan
lib/Package/Prototype.xs view on Meta::CPAN
CV *prototype_cv = make_prototype_method(aTHX_ stash);
GV *prototype_glob = prototype_gv_pvn(aTHX_ stash, prototype, 9, 0);
GvCV_set(prototype_glob, prototype_cv);
hv_store(stash, prototype, 9, (SV *)prototype_glob, 0);
}
XS(XS_prototype_getter)
{
dVAR; dXSARGS;
SV *retval = (SV *)CvXSUBANY(cv).any_ptr;
SP -= items; /* PPCODE */
PUTBACK;
push_values(aTHX_ retval);
}
XS(XS_prototype_method)
{
dVAR; dXSARGS;
if ((items - 1) % 2 != 0)
Perl_croak(aTHX_ "Argument isn't hash type");
lib/Package/Prototype.xs view on Meta::CPAN
void *
bless(klass, ref, pkgsv=NULL)
SV *klass;
SV *ref;
SV *pkgsv;
PREINIT:
char *pkg;
STRLEN pkglen;
HE* entry;
HV *stash;
PPCODE:
{
if (!IsHashRef(ref))
Perl_croak(aTHX_ "Please pass an hash reference to the first argument");
if (pkgsv) {
pkg = SvPV(pkgsv, pkglen);
} else {
pkg = "__ANON__";
pkglen = 8;
}
( run in 1.275 second using v1.01-cache-2.11-cpan-5511b514fd6 )