From 3fd56b4dfb4975434ec1e29248961e53cf89de26 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 12 Nov 2010 00:07:54 -0600 Subject: convert remove_package_glob --- Stash.xs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'Stash.xs') diff --git a/Stash.xs b/Stash.xs index 9e4fdcd..2ca99a0 100644 --- a/Stash.xs +++ b/Stash.xs @@ -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); -- cgit v1.2.3-54-g00ecf