diff options
author | Nicholas Clark <nick@ccl4.org> | 2012-02-28 23:30:30 +0100 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2012-03-19 10:21:54 +0100 |
commit | 1873980aaeb3ef1e5a2e1ef646a831ce8ddc3e11 (patch) | |
tree | 63188f037278ef67efb3b555c54f551073971d00 | |
parent | 149758b3fc289aa2e2cbf92de18c3cee9475fe83 (diff) | |
download | perl-1873980aaeb3ef1e5a2e1ef646a831ce8ddc3e11.tar.gz |
In B::Deparse::_features_from_bundle(), don't call feature::current_bundle()
Instead, directly access feature's package variables, as B::Deparse already
does in 14 other places. (It also has its tentacles firmly into strict
and warning's package variables - it's not fussy)
feature::current_bundle() was not part of the documented API of feature
either, so B::Deparse wasn't clean previously.
-rw-r--r-- | dist/B-Deparse/Deparse.pm | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/dist/B-Deparse/Deparse.pm b/dist/B-Deparse/Deparse.pm index 2bd6b6317d..eb24214eff 100644 --- a/dist/B-Deparse/Deparse.pm +++ b/dist/B-Deparse/Deparse.pm @@ -1451,10 +1451,7 @@ sub seq_subs { sub _features_from_bundle { my ($hints, $hh) = @_; - local $^H = $hints; - # Shh! Keep quite about this function. It is not to be - # relied upon. - foreach (@{feature::current_bundle()}) { + foreach (@{$feature::feature_bundle{@feature::hint_bundles[$hints >> $feature::hint_shift]}}) { $hh->{$feature::feature{$_}} = 1; } return $hh; @@ -1689,7 +1686,7 @@ sub keyword { my $hh; my $hints = $self->{hints} & $feature::hint_mask; if ($hints && $hints != $feature::hint_mask) { - $hh = _features_from_bundle($self->{hints}); + $hh = _features_from_bundle($hints); } elsif ($hints) { $hh = $self->{'hinthash'} } return "CORE::$name" |