Make the 5.9 changes to B conditional on perl version.
Nicholas Clark [Sat, 5 Nov 2005 16:47:31 +0000 (16:47 +0000)]
p4raw-id: //depot/perl@26019

ext/B/B.pm
ext/B/B.xs

index 2346ac0..5b6c04e 100644 (file)
@@ -7,7 +7,7 @@
 #
 package B;
 
-our $VERSION = '1.09';
+our $VERSION = '1.10';
 
 use XSLoader ();
 require Exporter;
@@ -855,6 +855,16 @@ IoIFP($io) == PerlIO_stdin() ).
 Like C<ARRAY>, but takes an index as an argument to get only one element,
 rather than a list of all of them.
 
+=item OFF
+
+This method is deprecated if running under Perl 5.8, and is no longer present
+if running under Perl 5.9
+
+=item AvFLAGS
+
+This method returns the AV specific flags. In Perl 5.9 these are now stored
+in with the main SV flags, so this method is no longer present.
+
 =back
 
 =head2 B::CV Methods
@@ -907,6 +917,11 @@ For constant subroutines, returns the constant SV returned by the subroutine.
 
 =item ARRAY
 
+=item PMROOT
+
+This method is not present if running under Perl 5.9, as the PMROOT
+information is no longer stored directly in the hash.
+
 =back
 
 =head2 OP-RELATED CLASSES
index f9c8647..953f6be 100644 (file)
@@ -1563,6 +1563,17 @@ SSize_t
 AvMAX(av)
        B::AV   av
 
+#if PERL_VERSION < 9
+                          
+
+#define AvOFF(av) ((XPVAV*)SvANY(av))->xof_off
+
+IV
+AvOFF(av)
+       B::AV   av
+
+#endif
+
 void
 AvARRAY(av)
        B::AV   av
@@ -1584,6 +1595,16 @@ AvARRAYelt(av, idx)
        else
            XPUSHs(make_sv_object(aTHX_ sv_newmortal(), NULL));
 
+#if PERL_VERSION < 9
+                                  
+MODULE = B     PACKAGE = B::AV
+
+U8
+AvFLAGS(av)
+       B::AV   av
+
+#endif
+
 MODULE = B     PACKAGE = B::FM         PREFIX = Fm
 
 IV
@@ -1682,6 +1703,14 @@ char *
 HvNAME(hv)
        B::HV   hv
 
+#if PERL_VERSION < 9
+
+B::PMOP
+HvPMROOT(hv)
+       B::HV   hv
+
+#endif
+
 void
 HvARRAY(hv)
        B::HV   hv