From 275dd5c4ea748261741236a62ad763c775a651c5 Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
Date: Tue, 25 Aug 2009 00:02:27 +0100
Subject: [PATCH] IkiWiki::pagename: memoize results

This relies for its correctness on %config, %hooks and pagetype() not
changing.
---
 IkiWiki.pm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/IkiWiki.pm b/IkiWiki.pm
index 35fee1aa7..8a8695768 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -661,9 +661,15 @@ sub pagetype ($) {
 	return;
 }
 
+my %pagename_cache;
+
 sub pagename ($) {
 	my $file=shift;
 
+	if (exists $pagename_cache{$file}) {
+		return $pagename_cache{$file};
+	}
+
 	my $type=pagetype($file);
 	my $page=$file;
  	$page=~s/\Q.$type\E*$//
@@ -672,6 +678,8 @@ sub pagename ($) {
 	if ($config{indexpages} && $page=~/(.*)\/index$/) {
 		$page=$1;
 	}
+
+	$pagename_cache{$file} = $page;
 	return $page;
 }
 
-- 
2.39.5