]> git.vpit.fr Git - perl/modules/subs-auto.git/commitdiff
Localize the guard
authorVincent Pit <vince@profvince.com>
Sun, 15 Feb 2009 10:59:00 +0000 (11:59 +0100)
committerVincent Pit <vince@profvince.com>
Sun, 15 Feb 2009 10:59:00 +0000 (11:59 +0100)
lib/subs/auto.pm

index 978ce41fc91b9b3aab744a98fd3415f3b9bfc11f..e507c5c71aafed9d24140a8a8528a13796ec91b1 100644 (file)
@@ -122,7 +122,7 @@ sub _reset {
 sub _fetch {
  (undef, my $data, my $func) = @_;
  return if $data->{guard} or $func =~ /::/ or exists $core{$func};
- $data->{guard} = 1;
local $data->{guard} = 1;
  my $hints = (caller 0)[10];
  if ($hints and $hints->{subs__auto}) {
   my $mod = $func . '.pm';
@@ -142,20 +142,18 @@ sub _fetch {
  } else {
   _reset($data->{pkg}, $func);
  }
- $data->{guard} = 0;
  return;
 }
 
 sub _store {
  (undef, my $data, my $func) = @_;
  return if $data->{guard};
- $data->{guard} = 1;
local $data->{guard} = 1;
  _reset($data->{pkg}, $func);
- $data->{guard} = 0;
  return;
 }
 
-my $wiz = wizard data  => sub { +{ pkg => $_[1] } },
+my $wiz = wizard data  => sub { +{ pkg => $_[1], guard => 0 } },
                  fetch => \&_fetch,
                  store => \&_store;