$recurse needs to be part of the key to the memo hash!
Luckily, there is only one caller which calls with $recurse==1,
check_series_has_all_patches. It ends up mishandles this situation by
complaining about the directory names, as if they were unused patches.
And after that no-one needs to call get_tree.
Closes: #907202.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
return () if $type eq 'missing';
}
+ $recurse = !!$recurse;
+
confess "get_tree needs object not $x ?" unless $x =~ m{^[0-9a-f]+\:};
our (@get_tree_memo, %get_tree_memo);
- my $memo = $get_tree_memo{$x};
+ my $memo = $get_tree_memo{$recurse,$x};
return @$memo if $memo;
local $Debian::Dgit::debugcmd_when_debuglevel = 3;
push @l, [ $n, $i ];
confess "$x need $last < $n ?" unless $last lt $n;
}
- $get_tree_memo{$x} = \@l;
+ $get_tree_memo{$recurse,$x} = \@l;
push @get_tree_memo, $x;
if (@get_tree_memo > 10) {
delete $get_tree_memo{ shift @get_tree_memo };