summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Paul Mackerras <paulus@samba.org>2008-01-12 21:46:31 +1100
committerLibravatar Paul Mackerras <paulus@samba.org>2008-01-12 21:46:31 +1100
commit17529cf9bc50e8b2bc0ea930a966b8b47056853e (patch)
treec101e983421cb3881de779fbe0b2e9b0e7ffae91
parentgitk: Fix handling of flag arguments (diff)
downloadtgif-17529cf9bc50e8b2bc0ea930a966b8b47056853e.tar.xz
gitk: Fix a bug in make_disporder
The make_disporder function has an optimization where it assumed that if displayorder was already long enough and the first entry in it for a particular arc was non-null, then the whole arc was present. This turns out not to be true in some circumstances, since we can add a commit to an arc (which truncates displayorder to the previous end of that arc), then call make_disporder for later arcs (which will pad displayorder with null elements), then call make_disporder for the first arc - which won't update the null elements. This fixes it by changing the optimization to check the last element for the arc instead of the first. Signed-off-by: Paul Mackerras <paulus@samba.org>
-rwxr-xr-xgitk2
1 files changed, 1 insertions, 1 deletions
diff --git a/gitk b/gitk
index 97d1be092a..8699e1bb4f 100755
--- a/gitk
+++ b/gitk
@@ -853,7 +853,7 @@ proc make_disporder {start end} {
lappend displayorder $id
lappend parentlist $parents($curview,$id)
}
- } elseif {[lindex $displayorder $r] eq {}} {
+ } elseif {[lindex $displayorder [expr {$r + $al - 1}]] eq {}} {
set i $r
foreach id $varccommits($curview,$a) {
lset displayorder $i $id