From: Joey Hess <joey@kitenet.net>
Date: Sat, 16 Nov 2013 16:28:01 +0000 (-0400)
Subject: Fixed unncessary tight loop hash copy in saveindex where a pointer can be used instea... 
X-Git-Tag: debian/3.20140102~69
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/992d4f52ff2801a48d85b65209cccc26efe8bd8c?ds=sidebyside

Fixed unncessary tight loop hash copy in saveindex where a pointer can be used instead. Can speed up refreshes by nearly 50% in some circumstances.

I *think* this is ok, at least it results in close to the same index being
saved as before. The difference is that plugins that have a pagestate of {}
have that recorded this way, while with the tight loop, the key for the
plugin in not copied in that case. I cannot see how this could matter.
---

diff --git a/IkiWiki.pm b/IkiWiki.pm
index 87ddb1b56..9ccb92a4d 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1914,11 +1914,7 @@ sub saveindex () {
 		}
 
 		if (exists $pagestate{$page}) {
-			foreach my $id (@plugins) {
-				foreach my $key (keys %{$pagestate{$page}{$id}}) {
-					$index{page}{$src}{state}{$id}{$key}=$pagestate{$page}{$id}{$key};
-				}
-			}
+			$index{page}{$src}{state}=$pagestate{$page};
 		}
 	}
 
diff --git a/debian/changelog b/debian/changelog
index 92c97e947..fcd47494d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,9 @@ ikiwiki (3.20130904.2) UNRELEASED; urgency=low
 
   * aggregate: Improve display of post author.
   * poll: Fix behavior of poll buttons when inlined.
+  * Fixed unncessary tight loop hash copy in saveindex where a pointer
+    can be used instead. Can speed up refreshes by nearly 50% in some
+    circumstances.
 
  -- Joey Hess <joeyh@debian.org>  Thu, 05 Sep 2013 10:01:10 -0400