don't use pagespec_match_list
This should be more efficient than pagespec_match_list since it short-circuits after the first match is found. The other problem with using pagespec_match_list here is it may throw an error if a bad or failing pagespec somehow got into the dependencies.master
parent
2ef6b15973
commit
7dd9b65db4
|
@ -460,19 +460,21 @@ sub refresh () {
|
|||
my $p=pagename($f);
|
||||
if (exists $depends{$p}) {
|
||||
foreach my $d (keys %{$depends{$p}}) {
|
||||
my $sub=pagespec_translate($d);
|
||||
next if $@ || ! defined $sub;
|
||||
|
||||
# only consider internal files
|
||||
# if the page explicitly depends on such files
|
||||
my @pages = map {
|
||||
pagename($_)
|
||||
} grep {
|
||||
$_ ne $f
|
||||
} (@changed, $d =~ /internal\(/ ? @internal : ());
|
||||
@pages = pagespec_match_list(\@pages, $d, location => $p);
|
||||
if (@pages) {
|
||||
debug(sprintf(gettext("building %s, which depends on %s"), $f, $pages[0]));
|
||||
render($f);
|
||||
$rendered{$f}=1;
|
||||
next F;
|
||||
# if the page explicitly depends
|
||||
# on such files
|
||||
foreach my $file (@changed, $d =~ /internal\(/ ? @internal : ()) {
|
||||
next if $file eq $f;
|
||||
my $page=pagename($file);
|
||||
if ($sub->($page, location => $p)) {
|
||||
debug(sprintf(gettext("building %s, which depends on %s"), $f, $page));
|
||||
render($f);
|
||||
$rendered{$f}=1;
|
||||
next F;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue