Skip to content

Commit

Permalink
gitk: Fix a bug in make_disporder
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paul Mackerras committed Jan 12, 2008
1 parent 5be25a8 commit 17529cf
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion gitk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 17529cf

Please sign in to comment.