From: Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Date: Thu, 18 Jun 2009 14:55:55 +0000 (+0100)
Subject: calendar, inline, map: don't pre-join dependencies
X-Git-Tag: 3.1415926~68^2~6
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/b6fcb1cb0ef27e5a63184440675d465fad652acf

calendar, inline, map: don't pre-join dependencies

The new dependency handling works better (eliminates more duplicates) if
dependencies are split up. On the same wiki mentioned in the previous
commit, this saves about a second (i.e. 4%) on the same test.
---

diff --git a/IkiWiki/Plugin/calendar.pm b/IkiWiki/Plugin/calendar.pm
index c25893f72..5d16dff75 100644
--- a/IkiWiki/Plugin/calendar.pm
+++ b/IkiWiki/Plugin/calendar.pm
@@ -212,7 +212,9 @@ EOF
 	add_depends($params{page}, $params{pages});
 	# Explicitly add all currently linked pages as dependencies, so
 	# that if they are removed, the calendar will be sure to be updated.
-	add_depends($params{page}, join(" or ", @list));
+	foreach my $p (@list) {
+		add_depends($params{page}, $p);
+	}
 
 	return $calendar;
 }
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index 3a2f4b7bc..a501566b5 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -251,7 +251,9 @@ sub preprocess_inline (@) {
 	# Explicitly add all currently displayed pages as dependencies, so
 	# that if they are removed or otherwise changed, the inline will be
 	# sure to be updated.
-	add_depends($params{page}, join(" or ", $#list >= $#feedlist ? @list : @feedlist));
+	foreach my $p ($#list >= $#feedlist ? @list : @feedlist) {
+		add_depends($params{page}, $p);
+	}
 	
 	if ($feeds && exists $params{feedpages}) {
 		@feedlist=pagespec_match_list(\@feedlist, $params{feedpages}, location => $params{page});
diff --git a/IkiWiki/Plugin/map.pm b/IkiWiki/Plugin/map.pm
index 826dbbd66..54146dc46 100644
--- a/IkiWiki/Plugin/map.pm
+++ b/IkiWiki/Plugin/map.pm
@@ -73,7 +73,9 @@ sub preprocess (@) {
 	add_depends($params{page}, $params{pages});
 	# Explicitly add all currently shown pages, to detect when pages
 	# are removed.
-	add_depends($params{page}, join(" or ", keys %mapitems));
+	foreach my $item (keys %mapitems) {
+		add_depends($params{page}, $item);
+	}
 
 	# Create the map.
 	my $parent="";