diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-12 00:07:54 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-12 03:20:44 -0600 |
commit | 3fd56b4dfb4975434ec1e29248961e53cf89de26 (patch) | |
tree | 0da664496ad3f7f8eb4b5f0793d0db6f0d216365 /Stash.xs | |
parent | 194acf4760e6124a8787c2f1c6b7b76015ad5e33 (diff) | |
download | package-stash-xs-3fd56b4dfb4975434ec1e29248961e53cf89de26.tar.gz package-stash-xs-3fd56b4dfb4975434ec1e29248961e53cf89de26.zip |
convert remove_package_glob
Diffstat (limited to 'Stash.xs')
-rw-r--r-- | Stash.xs | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -2,6 +2,24 @@ #include "perl.h" #include "XSUB.h" +HV *_get_namespace(SV *self) +{ + dSP; + SV *ret; + + PUSHMARK(SP); + XPUSHs(self); + PUTBACK; + + call_method("namespace", G_SCALAR); + + SPAGAIN; + ret = POPs; + PUTBACK; + + return (HV*)SvRV(ret); +} + MODULE = Package::Stash PACKAGE = Package::Stash SV* @@ -50,3 +68,12 @@ namespace(self) RETVAL = slot ? SvREFCNT_inc(*slot) : &PL_sv_undef; OUTPUT: RETVAL + +void +remove_package_glob(self, name) + SV *self + char *name + INIT: + HV *namespace; + CODE: + hv_delete(_get_namespace(self), name, strlen(name), G_DISCARD); |