summaryrefslogtreecommitdiff
path: root/ext/B/B.pm
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2007-09-08 15:20:14 +0000
committerNicholas Clark <nick@ccl4.org>2007-09-08 15:20:14 +0000
commit6822775c58936ecb7a12b5eeea555f24ceb87b14 (patch)
treedda3b0ab03c56151f83c3e06f096ad65c0bb9f9d /ext/B/B.pm
parente66656130437118b159c175520b6bbb7e77404df (diff)
downloadperl-6822775c58936ecb7a12b5eeea555f24ceb87b14.tar.gz
B.pm still assumed that SVt_PVBM exists. Correct this.
Tweak the alignment of ASCII art inheritance diagrams. p4raw-id: //depot/perl@31821
Diffstat (limited to 'ext/B/B.pm')
-rw-r--r--ext/B/B.pm71
1 files changed, 37 insertions, 34 deletions
diff --git a/ext/B/B.pm b/ext/B/B.pm
index fdf79aebad..53fb277b18 100644
--- a/ext/B/B.pm
+++ b/ext/B/B.pm
@@ -7,7 +7,7 @@
#
package B;
-our $VERSION = '1.16';
+our $VERSION = '1.17';
use XSLoader ();
require Exporter;
@@ -39,7 +39,8 @@ use strict;
@B::PVMG::ISA = 'B::PVNV';
# Change in the inheritance hierarchy post 5.9.0
@B::PVLV::ISA = $] > 5.009 ? 'B::GV' : 'B::PVMG';
-@B::BM::ISA = 'B::PVMG';
+# BM is eliminated post 5.9.5, but effectively is a specialisation of GV now.
+@B::BM::ISA = $] > 5.009005 ? 'B::GV' : 'B::PVMG';
@B::AV::ISA = 'B::PVMG';
@B::GV::ISA = 'B::PVMG';
@B::HV::ISA = 'B::PVMG';
@@ -570,20 +571,20 @@ give incomprehensible results, or worse.
=head2 SV-RELATED CLASSES
-B::IV, B::NV, B::RV, B::PV, B::PVIV, B::PVNV, B::PVMG, B::BM, B::PVLV,
-B::AV, B::HV, B::CV, B::GV, B::FM, B::IO. These classes correspond in
-the obvious way to the underlying C structures of similar names. The
-inheritance hierarchy mimics the underlying C "inheritance". For 5.9.1
+B::IV, B::NV, B::RV, B::PV, B::PVIV, B::PVNV, B::PVMG, B::BM (5.9.5 and
+earlier), B::PVLV, B::AV, B::HV, B::CV, B::GV, B::FM, B::IO. These classes
+correspond in the obvious way to the underlying C structures of similar names.
+The inheritance hierarchy mimics the underlying C "inheritance". For 5.9.5
and later this is:
- B::SV
- |
- +--------------+----------+------------+
- | | | |
- B::PV B::IV B::NV B::RV
- \ / /
- \ / /
- B::PVIV /
+ B::SV
+ |
+ +------------+------------+------------+
+ | | | |
+ B::PV B::IV B::NV B::RV
+ \ / /
+ \ / /
+ B::PVIV /
\ /
\ /
\ /
@@ -592,26 +593,28 @@ and later this is:
|
B::PVMG
|
- +-----+----+------+-----+-----+
- | | | | | |
- B::BM B::AV B::GV B::HV B::CV B::IO
- | |
- B::PVLV |
- B::FM
-
-
-For 5.9.0 and earlier, PVLV is a direct subclass of PVMG, so the base
-of this diagram is
-
- |
- B::PVMG
- |
- +------+-----+----+------+-----+-----+
- | | | | | | |
- B::PVLV B::BM B::AV B::GV B::HV B::CV B::IO
- |
- |
- B::FM
+ +-----+-----+-----+-----+
+ | | | | |
+ B::AV B::GV B::HV B::CV B::IO
+ | |
+ | |
+ B::PVLV B::FM
+
+
+For 5.9.0 and earlier, PVLV is a direct subclass of PVMG, and BM is still
+present as a distinct type, so the base of this diagram is
+
+
+ |
+ |
+ B::PVMG
+ |
+ +------+-----+-----+-----+-----+-----+
+ | | | | | | |
+ B::PVLV B::BM B::AV B::GV B::HV B::CV B::IO
+ |
+ |
+ B::FM
Access methods correspond to the underlying C macros for field access,