summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
be57bce)
&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
sub findfile {
my ($name) = @_;
my $dir, $i, $outdir = "";
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};