diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-03-01 22:20:52 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-03-01 22:20:52 -0800 |
commit | f8c62880ef22b74ea6df47bb349ff0743d2a93f9 (patch) | |
tree | 52900d781aadcb373e4fd38d2679a2c5c0204edc | |
parent | f474c526618d5d1111b585a6344e012fb731d3fe (diff) | |
parent | 52b8ea934ecd24b52806188b53367aaa6185deb3 (diff) | |
download | git-f8c62880ef22b74ea6df47bb349ff0743d2a93f9.tar.gz git-f8c62880ef22b74ea6df47bb349ff0743d2a93f9.tar.xz |
Merge git://git.kernel.org/pub/scm/gitk/gitk
* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Fix possible infinite loop and display corruption
-rw-r--r-- | gitk-git/gitk | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gitk-git/gitk b/gitk-git/gitk index dc2a43961..1773ae63e 100644 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -701,16 +701,17 @@ proc newvarc {view id} { } proc splitvarc {p v} { - global varcid varcstart varccommits varctok + global varcid varcstart varccommits varctok vtokmod global vupptr vdownptr vleftptr vbackptr varcix varcrow vlastins set oa $varcid($v,$p) + set otok [lindex $varctok($v) $oa] set ac $varccommits($v,$oa) set i [lsearch -exact $varccommits($v,$oa) $p] if {$i <= 0} return set na [llength $varctok($v)] # "%" sorts before "0"... - set tok "[lindex $varctok($v) $oa]%[strrep $i]" + set tok "$otok%[strrep $i]" lappend varctok($v) $tok lappend varcrow($v) {} lappend varcix($v) {} @@ -730,6 +731,9 @@ proc splitvarc {p v} { for {set b [lindex $vdownptr($v) $na]} {$b != 0} {set b [lindex $vleftptr($v) $b]} { lset vupptr($v) $b $na } + if {[string compare $otok $vtokmod($v)] <= 0} { + modify_arc $v $oa + } } proc renumbervarc {a v} { @@ -3363,7 +3367,6 @@ proc external_blame {parent_idx {line {}}} { # being given an absolute path... set f [make_relative $f] lappend cmdline $base_commit $f - puts "cmdline={$cmdline}" if {[catch {eval exec $cmdline &} err]} { error_popup "[mc "git gui blame: command failed:"] $err" } @@ -5731,7 +5734,6 @@ proc drawcommits {row {endrow {}}} { optimize_rows $ro1 0 $r2 if {$need_redisplay || $nrows_drawn > 2000} { clear_display - drawvisible } # make the lines join to already-drawn rows either side |