]> sipb.mit.edu Git - ikiwiki.git/commitdiff
pagespec_match_list * optimisation
authorJoey Hess <joey@gnu.kitenet.net>
Thu, 23 Apr 2009 20:20:18 +0000 (16:20 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Thu, 23 Apr 2009 20:20:18 +0000 (16:20 -0400)
Add an optimisation for the semi-common case of a "*" pagespec. Can
avoid doing any real processing in this case.

IkiWiki.pm
IkiWiki/Plugin/pagecount.pm

index e260fffea7aad7802e673541533056ad6960a118..e8c0c7abc70450e78d35b5cd04576c70eb3f9a70 100644 (file)
@@ -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;
index f8881a04bdacab3f3f086cefd29323f8463c82c5..a561e58e5314519b2236686f139dbbb4bcf4b430 100644 (file)
@@ -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;
 }