From f45cb9594759421f8d95e3974ba79efbd1fa0621 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 4 Jan 2013 03:31:08 -0600 Subject: fix the ::ISA::CACHE:: thing here too --- XS.xs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/XS.xs b/XS.xs index 59e2254..2795b81 100644 --- a/XS.xs +++ b/XS.xs @@ -837,6 +837,14 @@ list_all_symbols(self, vartype=VAR_NONE) keys = hv_iterinit(namespace); EXTEND(SP, keys); while ((entry = hv_iternext(namespace))) { +#if PERL_VERSION < 10 + char *pv; + STRLEN len; + pv = HePV(entry, len); + if (strnEQ(entry, "::ISA::CACHE::", len)) { + continue; + } +#endif mPUSHs(newSVhe(entry)); } } @@ -850,6 +858,11 @@ list_all_symbols(self, vartype=VAR_NONE) hv_iterinit(namespace); while ((val = hv_iternextsv(namespace, &key, &len))) { GV *gv = (GV*)val; +#if PERL_VERSION < 10 + if (vartype == VAR_SCALAR && strnEQ(key, "::ISA::CACHE::", len)) { + continue; + } +#endif if (isGV(gv)) { switch (vartype) { case VAR_SCALAR: @@ -898,6 +911,12 @@ get_all_symbols(self, vartype=VAR_NONE) hv_iterinit(namespace); while ((val = hv_iternextsv(namespace, &key, &len))) { GV *gv = (GV*)val; +#if PERL_VERSION < 10 + if ((vartype == VAR_SCALAR || vartype == VAR_NONE) + && strnEQ(key, "::ISA::CACHE::", len)) { + continue; + } +#endif if (!isGV(gv)) { SV *keysv = newSVpvn(key, len); -- cgit v1.2.3