summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--XS.xs5
-rw-r--r--t/edge-cases.t2
2 files changed, 7 insertions, 0 deletions
diff --git a/XS.xs b/XS.xs
index f636392..84f89f7 100644
--- a/XS.xs
+++ b/XS.xs
@@ -556,6 +556,10 @@ new(class, package)
}
}
else if (SvROK(package) && SvTYPE(SvRV(package)) == SVt_PVHV) {
+#if PERL_VERSION < 10
+ croak("The XS implementation of Package::Stash does not support "
+ "anonymous stashes before perl 5.10");
+#else
instance = newHV();
if (!hv_store(instance, "namespace", 9, SvREFCNT_inc_simple_NN(package), 0)) {
@@ -563,6 +567,7 @@ new(class, package)
SvREFCNT_dec(instance);
croak("Couldn't initialize the 'namespace' key, hv_store failed");
}
+#endif
}
else {
croak("Package::Stash->new must be passed the name of the package to access");
diff --git a/t/edge-cases.t b/t/edge-cases.t
index ddaca14..4e851c3 100644
--- a/t/edge-cases.t
+++ b/t/edge-cases.t
@@ -56,6 +56,8 @@ is(ref($stash->get_or_add_symbol('$glob')), 'SCALAR', "got an empty scalar");
SKIP: {
skip "PP doesn't support anon stashes before 5.14", 4
if $] < 5.014 && $Package::Stash::IMPLEMENTATION eq 'PP';
+ skip "XS doesn't support anon stashes before 5.10", 4
+ if $] < 5.010 && $Package::Stash::IMPLEMENTATION eq 'XS';
local $TODO = "don't know how to properly inflate a stash entry in PP"
if $Package::Stash::IMPLEMENTATION eq 'PP';