diff options
| author | Paul Mackerras <paulus@samba.org> | 2008-02-18 10:44:33 +1100 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2008-02-18 10:44:33 +1100 |
| commit | 841ea8244913bd8953fdd43e54d9965f02bebae6 (patch) | |
| tree | 0b71293cc6161525b322b8d62f93b5446d88cef2 | |
| parent | Merge branch 'master' into dev (diff) | |
| download | git-841ea8244913bd8953fdd43e54d9965f02bebae6.tar.gz git-841ea8244913bd8953fdd43e54d9965f02bebae6.zip | |
gitk: Fix bug where arcs could get lost
Because we weren't fixing up vlastins when moving an arc from one
place to another, it was possible for us later to decide to move
an arc to the wrong place, and end up with an arc disconnected from
the rest of the graph. This fixes it by updating vlastins when
necessary.
Signed-off-by: Paul Mackerras <paulus@samba.org>
| -rwxr-xr-x | gitk | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -415,11 +415,12 @@ proc splitvarc {p v} { set varcid($v,$id) $na } lappend vdownptr($v) [lindex $vdownptr($v) $oa] + lappend vlastins($v) [lindex $vlastins($v) $oa] lset vdownptr($v) $oa $na + lset vlastins($v) $oa 0 lappend vupptr($v) $oa lappend vleftptr($v) 0 lappend vbackptr($v) 0 - lappend vlastins($v) 0 for {set b [lindex $vdownptr($v) $na]} {$b != 0} {set b [lindex $vleftptr($v) $b]} { lset vupptr($v) $b $na } @@ -513,6 +514,9 @@ proc renumbervarc {a v} { if {$d != 0} { lset vbackptr($v) $d $c } + if {[lindex $vlastins($v) $b] == $a} { + lset vlastins($v) $b $c + } lset vupptr($v) $a $ka set c [lindex $vlastins($v) $ka] if {$c == 0 || \ |
