Change 11167 by jhi@alpha on 2001/07/06 01:14:41

        Subject: [PATCH B::Deparse] Make warnings handling more robust
        From: Robin Houston <[EMAIL PROTECTED]>
        Date: Thu, 5 Jul 2001 18:33:21 +0100
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/ext/B/B/Deparse.pm#90 edit

Differences ...

==== //depot/perl/ext/B/B/Deparse.pm#90 (text) ====
Index: perl/ext/B/B/Deparse.pm
--- perl/ext/B/B/Deparse.pm.~1~ Thu Jul  5 19:15:05 2001
+++ perl/ext/B/B/Deparse.pm     Thu Jul  5 19:15:05 2001
@@ -496,9 +496,15 @@
     return $self;
 }
 
-sub WARN_MASK () {
-    # Mask out the bits that C<use vars> uses
-    $warnings::Bits{all} | $warnings::DeadBits{all};
+{
+    # Mask out the bits that L<warnings::register> uses
+    my $WARN_MASK;
+    BEGIN {
+       $WARN_MASK = $warnings::Bits{all} | $warnings::DeadBits{all};
+    }
+    sub WARN_MASK () {
+       return $WARN_MASK;
+    }
 }
 
 # Initialise the contextual information, either from
@@ -626,7 +632,7 @@
 
        elsif ($name eq 'warnings') {
            if ($val eq 'none') {
-               $warning_bits = "\0"x12;
+               $warning_bits = $warnings::NONE;
                next();
            }
 
@@ -638,7 +644,7 @@
                @names = split/\s+/, $val;
            }
 
-           $warning_bits = "\0"x12 if !defined ($warning_bits);
+           $warning_bits = $warnings::NONE if !defined ($warning_bits);
            $warning_bits |= warnings::bits(@names);
        }
 
@@ -1270,10 +1276,10 @@
     my $warnings = $op->warnings;
     my $warning_bits;
     if ($warnings->isa("B::SPECIAL") && $$warnings == 4) {
-       $warning_bits = $warnings::Bits{"all"};
+       $warning_bits = $warnings::Bits{"all"} & WARN_MASK;
     }
     elsif ($warnings->isa("B::SPECIAL") && $$warnings == 5) {
-        $warning_bits = "\0"x12;
+        $warning_bits = $warnings::NONE;
     }
     elsif ($warnings->isa("B::SPECIAL")) {
        $warning_bits = undef;
End of Patch.

Reply via email to