mirror of
https://github.com/git/git.git
synced 2025-01-23 16:03:32 +08:00
gitk: Remove closed file descriptors from $blobdifffd
One shouldn't have descriptors of already closed files around. The first idea to deal with this (previously) ever growing array was to remove it entirely, but it's needed to detect start of a new diff with ths old diff not yet done. This happens when a user clicks on the same commit in the commit list repeatedly without delay. Signed-off-by: Markus Hitter <mah@jump-ing.de> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
This commit is contained in:
parent
106a6d9d85
commit
0748f41eb8
5
gitk
5
gitk
@ -8073,7 +8073,11 @@ proc getblobdiffline {bdf ids} {
|
||||
$ctext conf -state normal
|
||||
while {[incr nr] <= 1000 && [gets $bdf line] >= 0} {
|
||||
if {$ids != $diffids || $bdf != $blobdifffd($ids)} {
|
||||
# Older diff read. Abort it.
|
||||
catch {close $bdf}
|
||||
if {$ids != $diffids} {
|
||||
array unset blobdifffd $ids
|
||||
}
|
||||
return 0
|
||||
}
|
||||
parseblobdiffline $ids $line
|
||||
@ -8082,6 +8086,7 @@ proc getblobdiffline {bdf ids} {
|
||||
blobdiffmaybeseehere [eof $bdf]
|
||||
if {[eof $bdf]} {
|
||||
catch {close $bdf}
|
||||
array unset blobdifffd $ids
|
||||
return 0
|
||||
}
|
||||
return [expr {$nr >= 1000? 2: 1}]
|
||||
|
Loading…
Reference in New Issue
Block a user