diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-04-23 16:20:18 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-04-23 16:20:18 -0400 |
commit | 2f96c49bd1826ecb213ae025ad456a714aa04863 (patch) | |
tree | 3d0c0a7e7f3af0e0105337d197f529eb0fcfd18f | |
parent | 860a86707856dcffcc67f137a0ab250ab34c42a6 (diff) |
pagespec_match_list * optimisation
Add an optimisation for the semi-common case of a "*" pagespec. Can
avoid doing any real processing in this case.
-rw-r--r-- | IkiWiki.pm | 2 | ||||
-rw-r--r-- | IkiWiki/Plugin/pagecount.pm | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index e260fffea..e8c0c7abc 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1837,6 +1837,8 @@ sub pagespec_match_list ($$;@) { my $spec=shift; my @params=@_; + return @$pages if $spec eq '*'; # optimisation + my $sub=pagespec_translate($spec); error "syntax error in pagespec \"$spec\"" if $@ || ! defined $sub; diff --git a/IkiWiki/Plugin/pagecount.pm b/IkiWiki/Plugin/pagecount.pm index f8881a04b..a561e58e5 100644 --- a/IkiWiki/Plugin/pagecount.pm +++ b/IkiWiki/Plugin/pagecount.pm @@ -26,9 +26,7 @@ sub preprocess (@) { # register a dependency. add_depends($params{page}, $params{pages}); - my @pages=keys %pagesources; - @pages=pagespec_match_list(\@pages, $params{pages}, location => $params{page}) - if $params{pages} ne "*"; # optimisation; + my @pages=pagespec_match_list([keys %pagesources], $params{pages}, location => $params{page}); return $#pages+1; } |