gitk: Fix more bugs resulting in Tcl "no such element in array" errors
authorPaul Mackerras <paulus@samba.org>
Wed, 12 Dec 2007 07:13:51 +0000 (18:13 +1100)
committerPaul Mackerras <paulus@samba.org>
Wed, 12 Dec 2007 07:13:51 +0000 (18:13 +1100)
commite5b37ac1ec6f1500a47a320a261933bccbdeb4f7
tree91346b26f29bf60ae350bfc6a5d757d8d6520946
parent0c27886e469dcf81ed0ba7b2035e32a823224edc
gitk: Fix more bugs resulting in Tcl "no such element in array" errors

First, update_arcrows was being overly aggressive in trimming
displayorder, resulting in calls to rowofcommit sometimes trimming off
commits that layoutrows had asked for in make_disporder and was relying
on having present.  This adds a vrowmod($view) variable that lets
update_arcrows be more precise in trimming off the invalid bits of
displayorder (and it also simplifies the check in make_disporder).
This modifies modify_arc and its callers so that vrowmod($view) is
updated appropriately.

Secondly, we were sometimes calling idcol with $i==-1, which resulted
in a call to ordertoken with the null string.  This fixes it by
forcing $i to 0 if it is less than zero.

This also fixes a possible infinite recursion with rowofcommit and
update_arcrows calling each other ad infinitum.

Signed-off-by: Paul Mackerras <paulus@samba.org>
gitk