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.
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;
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"