From 7c3b261c80f79042f3867cd99c5ba096987886bd Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 4 Mar 2011 13:06:43 -0600 Subject: disable caching of the namespace on 5.8 --- XS.xs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'XS.xs') diff --git a/XS.xs b/XS.xs index 73ca16f..a36fd67 100644 --- a/XS.xs +++ b/XS.xs @@ -385,16 +385,21 @@ namespace(self) SV *self PREINIT: HE *slot; + SV *package_name; CODE: if (!sv_isobject(self)) croak("Can't call namespace as a class method"); +#if PERL_VERSION < 10 + package_name = _get_name(self); + RETVAL = newRV_inc((SV*)gv_stashpv(SvPV_nolen(package_name), GV_ADD)); +#else slot = hv_fetch_ent((HV*)SvRV(self), namespace_key, 0, namespace_hash); if (slot) { RETVAL = SvREFCNT_inc_simple_NN(HeVAL(slot)); } else { HV *namespace; - SV *nsref, *package_name; + SV *nsref; package_name = _get_name(self); namespace = gv_stashpv(SvPV_nolen(package_name), GV_ADD); @@ -407,6 +412,7 @@ namespace(self) } RETVAL = SvREFCNT_inc_simple_NN(nsref); } +#endif OUTPUT: RETVAL -- cgit v1.2.3-54-g00ecf