diff options
author | Brian Fraser <fraserbn@gmail.com> | 2011-10-01 22:12:18 -0700 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-10-06 13:01:00 -0700 |
commit | 5fba3c9163b88339c871f8d9e75a6166967dc9b4 (patch) | |
tree | 355ed10513e2e85a006da13e6ce5a4ce687f2413 /ext/XS-APItest/APItest.xs | |
parent | 7f41545982b8820c303c4a89266aa26f0ebdccf0 (diff) | |
download | perl-5fba3c9163b88339c871f8d9e75a6166967dc9b4.tar.gz |
gv.c: Added gv_autoload4_(sv|pv|pvn)
Diffstat (limited to 'ext/XS-APItest/APItest.xs')
-rw-r--r-- | ext/XS-APItest/APItest.xs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs index c7317bc48d..d0fa057f81 100644 --- a/ext/XS-APItest/APItest.xs +++ b/ext/XS-APItest/APItest.xs @@ -1950,7 +1950,34 @@ gv_fetchmethod_flags_type(stash, methname, type, flags) break; } } + XPUSHs( gv ? (SV*)gv : &PL_sv_undef); +void +gv_autoload4_type(stash, methname, type, method, flags) + HV* stash + SV* methname + int type + I32 method + I32 flags + PREINIT: + STRLEN len; + const char * const name = SvPV_const(methname, len); + GV* gv; + PPCODE: + switch (type) { + case 0: + gv = gv_autoload4(stash, name, len, method); + break; + case 1: + gv = gv_autoload4_sv(stash, methname, method, flags); + break; + case 2: + gv = gv_autoload4_pv(stash, name, method, flags | SvUTF8(methname)); + break; + case 3: + gv = gv_autoload4_pvn(stash, name, len, method, flags | SvUTF8(methname)); + break; + } XPUSHs( gv ? (SV*)gv : &PL_sv_undef); void |