From b6b40d9bb2845ec2db90af4ca5c6eb561f0ce411 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 17 Jan 2004 13:24:59 +0000 Subject: [PATCH] So _that's_ why mkfiles.pl was running so slowly on my Windows box! &findfile() now caches its results. At least one full order of magnitude speedup when running on an SMB-mounted volume. Phew. git-svn-id: svn://svn.tartarus.org/sgt/putty@3720 cda61777-01e9-0310-a592-d414129be87e --- mkfiles.pl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mkfiles.pl b/mkfiles.pl index 30bd680d..652d2ecf 100755 --- a/mkfiles.pl +++ b/mkfiles.pl @@ -184,12 +184,15 @@ foreach $i (keys %depends) { sub findfile { my ($name) = @_; my $dir, $i, $outdir = ""; - $i = 0; - foreach $dir (@incdirs) { - $outdir = $dir, $i++ if -f "$dir$name"; + unless (defined $findfilecache{$name}) { + $i = 0; + foreach $dir (@incdirs) { + $outdir = $dir, $i++ if -f "$dir$name"; + } + die "multiple instances of source file $name\n" if $i > 1; + $findfilecache{$name} = $outdir . $name; } - die "multiple instances of source file $name\n" if $i > 1; - return "$outdir$name"; + return $findfilecache{$name}; } sub objects { -- 2.11.0