summaryrefslogtreecommitdiffstats
path: root/Stash.xs
diff options
context:
space:
mode:
Diffstat (limited to 'Stash.xs')
-rw-r--r--Stash.xs26
1 files changed, 26 insertions, 0 deletions
diff --git a/Stash.xs b/Stash.xs
index 879d7ac..9e4fdcd 100644
--- a/Stash.xs
+++ b/Stash.xs
@@ -24,3 +24,29 @@ new(class, package_name)
RETVAL = sv_bless(newRV((SV*)instance), gv_stashpv(class, 0));
OUTPUT:
RETVAL
+
+SV*
+name(self)
+ SV *self
+ INIT:
+ SV **slot;
+ CODE:
+ if (!sv_isobject(self))
+ croak("Can't call name as a class method");
+ slot = hv_fetch((HV*)SvRV(self), "name", 4, 0);
+ RETVAL = slot ? SvREFCNT_inc(*slot) : &PL_sv_undef;
+ OUTPUT:
+ RETVAL
+
+SV*
+namespace(self)
+ SV *self
+ INIT:
+ SV **slot;
+ CODE:
+ if (!sv_isobject(self))
+ croak("Can't call namespace as a class method");
+ slot = hv_fetch((HV*)SvRV(self), "namespace", 9, 0);
+ RETVAL = slot ? SvREFCNT_inc(*slot) : &PL_sv_undef;
+ OUTPUT:
+ RETVAL