aboutsummaryrefslogtreecommitdiffstats
path: root/p2p/discv5/table.go
diff options
context:
space:
mode:
authorOleg Kovalov <iamolegkovalov@gmail.com>2018-08-07 18:56:40 +0800
committerPéter Szilágyi <peterke@gmail.com>2018-08-07 18:56:40 +0800
commitcf05ef9106779da0df62c0c03312fc489171aaa5 (patch)
treea2d5185dea85a478895b799da81e41f8e383cb52 /p2p/discv5/table.go
parentde9b0660acf26edc3b261b805c1a3454e3c76321 (diff)
downloaddexon-cf05ef9106779da0df62c0c03312fc489171aaa5.tar.gz
dexon-cf05ef9106779da0df62c0c03312fc489171aaa5.tar.zst
dexon-cf05ef9106779da0df62c0c03312fc489171aaa5.zip
p2p, swarm, trie: avoid copying slices in loops (#17265)
Diffstat (limited to 'p2p/discv5/table.go')
-rw-r--r--p2p/discv5/table.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/p2p/discv5/table.go b/p2p/discv5/table.go
index c8d234b93..c793be508 100644
--- a/p2p/discv5/table.go
+++ b/p2p/discv5/table.go
@@ -81,7 +81,7 @@ func (tab *Table) chooseBucketRefreshTarget() common.Hash {
if printTable {
fmt.Println()
}
- for i, b := range tab.buckets {
+ for i, b := range &tab.buckets {
entries += len(b.entries)
if printTable {
for _, e := range b.entries {
@@ -93,7 +93,7 @@ func (tab *Table) chooseBucketRefreshTarget() common.Hash {
prefix := binary.BigEndian.Uint64(tab.self.sha[0:8])
dist := ^uint64(0)
entry := int(randUint(uint32(entries + 1)))
- for _, b := range tab.buckets {
+ for _, b := range &tab.buckets {
if entry < len(b.entries) {
n := b.entries[entry]
dist = binary.BigEndian.Uint64(n.sha[0:8]) ^ prefix
@@ -121,7 +121,7 @@ func (tab *Table) readRandomNodes(buf []*Node) (n int) {
// TODO: tree-based buckets would help here
// Find all non-empty buckets and get a fresh slice of their entries.
var buckets [][]*Node
- for _, b := range tab.buckets {
+ for _, b := range &tab.buckets {
if len(b.entries) > 0 {
buckets = append(buckets, b.entries[:])
}
@@ -175,7 +175,7 @@ func (tab *Table) closest(target common.Hash, nresults int) *nodesByDistance {
// obviously correct. I believe that tree-based buckets would make
// this easier to implement efficiently.
close := &nodesByDistance{target: target}
- for _, b := range tab.buckets {
+ for _, b := range &tab.buckets {
for _, n := range b.entries {
close.push(n, nresults)
}