summaryrefslogtreecommitdiff
path: root/ext/B
diff options
context:
space:
mode:
authorReini Urban <rurban@x-ray.at>2013-08-27 11:32:02 -0500
committerFather Chrysostomos <sprout@cpan.org>2013-08-27 20:28:58 -0700
commit38d2280fe891657ac2f57fd277d378edccd5ac11 (patch)
tree0b7c9d0076b91ff33be3af52f56828882e90f614 /ext/B
parent47369ecd8eb3c98b9f75d1e3203e8b85f78eaaec (diff)
downloadperl-38d2280fe891657ac2f57fd277d378edccd5ac11.tar.gz
B::INVLIST isa B::PV (for now)
If the compiler stumbles over a B::INVLIST treat it as B::PV and do not error. Also restore rudimentary B versioning support for BIND and INVLIST.
Diffstat (limited to 'ext/B')
-rw-r--r--ext/B/B.pm1
-rw-r--r--ext/B/B.xs5
2 files changed, 6 insertions, 0 deletions
diff --git a/ext/B/B.pm b/ext/B/B.pm
index 20794fa42e..4d0df907c7 100644
--- a/ext/B/B.pm
+++ b/ext/B/B.pm
@@ -48,6 +48,7 @@ push @B::EXPORT_OK, (qw(minus_c ppname save_BEGINs
@B::PVNV::ISA = qw(B::PVIV B::NV);
@B::PVMG::ISA = 'B::PVNV';
@B::REGEXP::ISA = 'B::PVMG' if $] >= 5.011;
+@B::INVLIST::ISA = 'B::PV' if $] >= 5.019;
@B::PVLV::ISA = 'B::GV';
@B::BM::ISA = 'B::GV';
@B::AV::ISA = 'B::PVMG';
diff --git a/ext/B/B.xs b/ext/B/B.xs
index 62496e2c68..279be53d5c 100644
--- a/ext/B/B.xs
+++ b/ext/B/B.xs
@@ -21,13 +21,18 @@ typedef FILE * InputStream;
static const char* const svclassnames[] = {
"B::NULL",
+#if PERL_VERSION < 19
+ "B::BIND",
+#endif
"B::IV",
"B::NV",
#if PERL_VERSION <= 10
"B::RV",
#endif
"B::PV",
+#if PERL_VERSION >= 19
"B::INVLIST",
+#endif
"B::PVIV",
"B::PVNV",
"B::PVMG",