From 39f523285a30d4b907f66d3cd55012fea237b913 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Mon, 13 Oct 2025 14:17:57 +0200 Subject: [PATCH] simplify DistCmp Refactor DistCmp to improve distance comparison logic. --- p2p/enode/node.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/p2p/enode/node.go b/p2p/enode/node.go index f160cfee11..ad16a12dd4 100644 --- a/p2p/enode/node.go +++ b/p2p/enode/node.go @@ -359,11 +359,10 @@ func ParseID(in string) (ID, error) { // Returns -1 if a is closer to target, 1 if b is closer to target // and 0 if they are equal. func DistCmp(target, a, b ID) int { - const size = 8 - n := len(target) - for i := 0; i+size <= n; i += size { - da := binary.BigEndian.Uint64(a[i:i+size]) ^ binary.BigEndian.Uint64(target[i:i+size]) - db := binary.BigEndian.Uint64(b[i:i+size]) ^ binary.BigEndian.Uint64(target[i:i+size]) + for i := 0; i < len(target); i += 8 { + tn := binary.BigEndian.Uint64(target[i:i+8]) + da := tn ^ binary.BigEndian.Uint64(a[i:i+8]) + db := tn ^ binary.BigEndian.Uint64(b[i:i+8]) if da > db { return 1 } else if da < db {