r68121 - in /branches/upstream/libdata-dump-streamer-perl/current: Changes META.yml lib/Data/Dump/Streamer.pm lib/Data/Dump/Streamer.xs

angelabad-guest at users.alioth.debian.org angelabad-guest at users.alioth.debian.org
Sat Feb 5 11:07:43 UTC 2011


Author: angelabad-guest
Date: Sat Feb  5 11:06:14 2011
New Revision: 68121

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=68121
Log:
[svn-upgrade] new version libdata-dump-streamer-perl (2.32)

Modified:
    branches/upstream/libdata-dump-streamer-perl/current/Changes
    branches/upstream/libdata-dump-streamer-perl/current/META.yml
    branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.pm
    branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.xs

Modified: branches/upstream/libdata-dump-streamer-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-dump-streamer-perl/current/Changes?rev=68121&op=diff
==============================================================================
--- branches/upstream/libdata-dump-streamer-perl/current/Changes (original)
+++ branches/upstream/libdata-dump-streamer-perl/current/Changes Sat Feb  5 11:06:14 2011
@@ -1,3 +1,6 @@
+2.32
+Disable overloading in a <=5.8.8 safe way [RT #53700]
+
 2.31
 React to Strawberry perl $. strangeness [RT #58528]
 

Modified: branches/upstream/libdata-dump-streamer-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-dump-streamer-perl/current/META.yml?rev=68121&op=diff
==============================================================================
--- branches/upstream/libdata-dump-streamer-perl/current/META.yml (original)
+++ branches/upstream/libdata-dump-streamer-perl/current/META.yml Sat Feb  5 11:06:14 2011
@@ -22,7 +22,7 @@
   ExtUtils::Depends: 0
   Module::Build: 0
   perl: 5.006
-generated_by: 'Module::Build version 0.3607'
+generated_by: 'Module::Build version 0.3603'
 license: perl
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -31,10 +31,10 @@
 provides:
   Data::Dump::Streamer:
     file: lib/Data/Dump/Streamer.pm
-    version: 2.31
+    version: 2.32
   Data::Dump::Streamer::Deparser:
     file: lib/Data/Dump/Streamer.pm
-    version: 2.31
+    version: 2.32
 recommends:
   Algorithm::Diff: 0
   Compress::Zlib: 0
@@ -60,4 +60,4 @@
   warnings::register: 0
 resources:
   license: http://dev.perl.org/licenses/
-version: 2.31
+version: 2.32

Modified: branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.pm?rev=68121&op=diff
==============================================================================
--- branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.pm (original)
+++ branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.pm Sat Feb  5 11:06:14 2011
@@ -35,7 +35,7 @@
 BEGIN{ $HasPadWalker=eval "use PadWalker 0.99; 1"; }
 
 BEGIN {
-    $VERSION   ='2.31';
+    $VERSION   ='2.32';
     $VERSION = eval $VERSION; # used for beta stuff.
     @ISA       = qw(Exporter DynaLoader);
     @EXPORT=qw(Dump DumpLex DumpVars);
@@ -205,6 +205,35 @@
             $hash
         };
         *lock_keys_plus=sub(\%;@){lock_ref_keys_plus(@_)};
+    }
+    if ($] <= 5.008008) {
+        *disable_overloading = \&SvAMAGIC_off;
+        *restore_overloading = sub ($$) {
+            SvAMAGIC_on($_[0], undef);
+
+            # Visit all classes we are ISA and fetch the () entry from
+            # every stash.
+            my %done;
+            my %todo = (
+                $_[0]     => undef,
+                UNIVERSAL => undef,
+            );
+            no strict 'refs';
+            for my $todo_class (keys %todo) {
+                delete $todo{$todo_class};
+                $done{$todo_class} = undef;
+                for my $isa (@{"${todo_class}::ISA"}) {
+                    $todo{$isa} = undef unless exists $done{$isa};
+                }
+            }
+        };
+    } else {
+        *disable_overloading = sub ($) {
+            bless $_[0], 'Does::Not::Exist';
+        };
+        *restore_overloading = sub ($$) {
+            bless $_[0], $_[1];
+        };
     }
     my %fail=map { ( $_ => 1 ) } @EXPORT_FAIL;
     @EXPORT_OK=grep { !$fail{$_} } @EXPORT_OK;
@@ -1526,7 +1555,7 @@
             my $overloaded=undef;
             my $isoverloaded=0;
             if (defined $class and overload::Overloaded($item)) {
-                bless $item, 'Does::Not::Exist';
+                disable_overloading( $item );
                 $overloaded= $class;
                 $isoverloaded= 1;
             }
@@ -1639,7 +1668,7 @@
                     if $ENV{DDS_STRICT};
             }
             if ($isoverloaded) {
-                $item= bless $item, $overloaded;
+                restore_overloading( $item, $overloaded );
             }
         }
         if ( $pass++ == 1 ) {
@@ -1865,7 +1894,7 @@
                 overload::Overloaded( $lhs ) )
             {
                 $overloaded=blessed $lhs;
-                bless $lhs,"Does::Not::Exist";
+                disable_overloading( $lhs );
                 $isoverloaded=1;
             }
             foreach my $t ($self->_glob_slots(''))
@@ -1926,7 +1955,7 @@
                 }
             }
             if ($isoverloaded) {
-                $lhs=bless $lhs,$overloaded;
+                restore_overloading( $lhs, $overloaded );
             }
 
 
@@ -2887,7 +2916,7 @@
     }
     my $isoverloaded=0;
     if (defined $class and overload::Overloaded($item)) {
-        bless $item, 'Does::Not::Exist';
+        disable_overloading( $item );
         $overloaded= $class;
         $isoverloaded= 1;
     }
@@ -2968,7 +2997,7 @@
             $self->_add_fix('bless',$idx,$overloaded);
         }
         if ($isoverloaded) {
-            $item=bless $item, $overloaded;
+            restore_overloading( $item, $overloaded );
         }
     }
     if ($fix_lock && !defined($class)) {
@@ -3705,7 +3734,7 @@
 our @ISA=qw(B::Deparse);
 my %cache;
 
-our $VERSION = '2.31';
+our $VERSION = '2.32';
 if ( $VERSION ne $Data::Dump::Streamer::VERSION ) {
     die "Incompatible Data::Dump::Streamer::Deparser v$VERSION vs Data::Dump::Streamer v$Data::Dump::Streamer::VERSION";
 }

Modified: branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.xs?rev=68121&op=diff
==============================================================================
--- branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.xs (original)
+++ branches/upstream/libdata-dump-streamer-perl/current/lib/Data/Dump/Streamer.xs Sat Feb  5 11:06:14 2011
@@ -107,6 +107,12 @@
 #    define NV double
 #endif
 
+#if PERL_VERSION < 8
+#    define MY_XS_AMAGIC
+#endif
+#if ((PERL_VERSION == 8) && (PERL_SUBVERSION <= 8))
+#    define MY_XS_AMAGIC
+#endif
 
 /*
    the following three subs are outright stolen from Data::Dumper ( Dumper.xs )
@@ -179,7 +185,6 @@
     }
     return ret;
 }
-
 
 XS(XS_Data__Dump__Streamer_SvREADONLY);
 XS(XS_Data__Dump__Streamer_SvREADONLY)	/* This is dangerous stuff. */
@@ -767,6 +772,25 @@
 }
 OUTPUT:
     RETVAL
+
+#ifdef MY_XS_AMAGIC
+
+void
+SvAMAGIC_off(sv)
+    SV * sv
+PROTOTYPE: $
+CODE:
+    SvAMAGIC_off(sv);
+
+void
+SvAMAGIC_on(sv,klass)
+    SV * sv
+    SV * klass
+PROTOTYPE: $$
+CODE:
+    SvAMAGIC_off(sv);
+
+#endif
 
 
 #ifndef NEW_REGEX_ENGINE




More information about the Pkg-perl-cvs-commits mailing list