]> sipb.mit.edu Git - ikiwiki.git/commitdiff
optimise add_depends for simple pagespecs
authorJoey Hess <joey@gnu.kitenet.net>
Sun, 4 Oct 2009 19:43:38 +0000 (15:43 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Sun, 4 Oct 2009 19:43:38 +0000 (15:43 -0400)
We don't need to check if the pagespec is contentless; all simple ones are.

IkiWiki.pm

index 56e2d4e714466931c76c5a62cf8e591a86ec6a60..c059a9b9f8b3c23b1faf1443cefd7d0692218168 100644 (file)
@@ -1771,18 +1771,19 @@ sub add_depends ($$;@) {
        my $page=shift;
        my $pagespec=shift;
 
        my $page=shift;
        my $pagespec=shift;
 
+       my $simple=$pagespec =~ /$config{wiki_file_regexp}/ &&
+               $pagespec !~ /[\s*?()!]/;
+
        my $deptype=$DEPEND_CONTENT | $DEPEND_EXISTS;
        if (@_) {
                my %params=@_;
                if (defined $params{content} && $params{content} == 0 &&
        my $deptype=$DEPEND_CONTENT | $DEPEND_EXISTS;
        if (@_) {
                my %params=@_;
                if (defined $params{content} && $params{content} == 0 &&
-                   pagespec_contentless($pagespec)) {
+                   ($simple || pagespec_contentless($pagespec))) {
                        $deptype=$deptype & ~$DEPEND_CONTENT;
                }
        }
 
                        $deptype=$deptype & ~$DEPEND_CONTENT;
                }
        }
 
-       if ($pagespec =~ /$config{wiki_file_regexp}/ &&
-               $pagespec !~ /[\s*?()!]/) {
-               # a simple dependency, which can be matched by string eq
+       if ($simple) {
                $depends_simple{$page}{lc $pagespec} |= $deptype;
                return 1;
        }
                $depends_simple{$page}{lc $pagespec} |= $deptype;
                return 1;
        }