summaryrefslogtreecommitdiffstats
path: root/Stash.xs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2010-11-12 00:07:54 -0600
committerJesse Luehrs <doy@tozt.net>2010-11-12 03:20:44 -0600
commit3fd56b4dfb4975434ec1e29248961e53cf89de26 (patch)
tree0da664496ad3f7f8eb4b5f0793d0db6f0d216365 /Stash.xs
parent194acf4760e6124a8787c2f1c6b7b76015ad5e33 (diff)
downloadpackage-stash-xs-3fd56b4dfb4975434ec1e29248961e53cf89de26.tar.gz
package-stash-xs-3fd56b4dfb4975434ec1e29248961e53cf89de26.zip
convert remove_package_glob
Diffstat (limited to 'Stash.xs')
-rw-r--r--Stash.xs27
1 files changed, 27 insertions, 0 deletions
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);