git-gui: Use catch rather than array names to check file.

When we reshow the current diff file it can be faster to just fetch
the value from the file_states array than it is to ask for all paths
whose name exactly matches the one we want to show.  This is because
[array names -exact] is O(n) in the number of files.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2006-11-11 18:42:42 -05:00
parent 7f1df79bb7
commit 73ad179bbb

View File

@ -350,11 +350,11 @@ proc clear_diff {} {
proc reshow_diff {} { proc reshow_diff {} {
global ui_fname_value ui_status_value file_states global ui_fname_value ui_status_value file_states
if {$ui_fname_value != {} && [array names file_states \ if {$ui_fname_value == {}
-exact $ui_fname_value] != {}} { || [catch {set s $file_states($ui_fname_value)}]} {
show_diff $ui_fname_value
} else {
clear_diff clear_diff
} else {
show_diff $ui_fname_value
} }
} }