diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-01-04 03:31:08 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-01-04 03:31:08 -0600 |
commit | f45cb9594759421f8d95e3974ba79efbd1fa0621 (patch) | |
tree | ff7c85e418fd05baa8ed42eab701c2d5b11b35ea /XS.xs | |
parent | 9c88b95a5ffba3dbcf9a416f659ad39dd4016367 (diff) | |
download | package-stash-xs-f45cb9594759421f8d95e3974ba79efbd1fa0621.tar.gz package-stash-xs-f45cb9594759421f8d95e3974ba79efbd1fa0621.zip |
fix the ::ISA::CACHE:: thing here too
Diffstat (limited to 'XS.xs')
-rw-r--r-- | XS.xs | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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); |