threads / patch / 34813

patchgitk: fix race error at click while reading commits

Subject: [PATCH] gitk: fix race error at click while reading commits

## tl;dr

One message between Aug 30, 2013 and Aug 30, 2013. Diffs are folded; open one to read it.

replies: 0people: 1as markdown or json

Max Kirillov· Aug 30, 2013, 23:39 UTC · lore

If I click the commit list while reading (or rereading, by Shift-F5) commits, sometimes an error message appears: `can't read "pending_select": no such variable', because pending_select is reset during update.

Just removing update or saving value in local variable would result in occasional scrolling to some random commit in history, often very far from the beginning. So nicer choice is skip the selection if change is detected

Signed-off-by: Max Kirillov <max@max630.net>
---
 gitk-git/gitk | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Show changes to gitk-git/gitk +4 −1
diff --git a/gitk-git/gitk b/gitk-git/gitk
index b3706fc..5a8a57c 100755
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -5038,8 +5038,11 @@ proc layoutmore {} {
     }
     if {[info exists pending_select] &&
 	[commitinview $pending_select $curview]} {
+	set save_pending_select $pending_select
 	update
-	selectline [rowofcommit $pending_select] 1
+	if {[info exists pending_select] && $pending_select == $save_pending_select} {
+	    selectline [rowofcommit $save_pending_select] 1
+	}
     }
     drawvisible
 }
-- 
1.8.4.rc3.902.g80a4b9e

← back to recent threads