Skip to content

Commit 86e7363

Browse files
committed
Simplify conditional
1 parent 0e92ca0 commit 86e7363

File tree

1 file changed

+28
-32
lines changed

1 file changed

+28
-32
lines changed

traverse.go

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -46,41 +46,37 @@ func (n *Networks) Next() bool {
4646
node := n.nodes[len(n.nodes)-1]
4747
n.nodes = n.nodes[:len(n.nodes)-1]
4848

49-
for {
50-
if node.pointer < n.reader.Metadata.NodeCount {
51-
ipRight := make(net.IP, len(node.ip))
52-
copy(ipRight, node.ip)
53-
if len(ipRight) <= int(node.bit>>3) {
54-
n.err = newInvalidDatabaseError(
55-
"invalid search tree at %v/%v", ipRight, node.bit)
56-
return false
57-
}
58-
ipRight[node.bit>>3] |= 1 << (7 - (node.bit % 8))
59-
60-
rightPointer, err := n.reader.readNode(node.pointer, 1)
61-
if err != nil {
62-
n.err = err
63-
return false
64-
}
49+
for node.pointer != n.reader.Metadata.NodeCount {
50+
if node.pointer > n.reader.Metadata.NodeCount {
51+
n.lastNode = node
52+
return true
53+
}
54+
ipRight := make(net.IP, len(node.ip))
55+
copy(ipRight, node.ip)
56+
if len(ipRight) <= int(node.bit>>3) {
57+
n.err = newInvalidDatabaseError(
58+
"invalid search tree at %v/%v", ipRight, node.bit)
59+
return false
60+
}
61+
ipRight[node.bit>>3] |= 1 << (7 - (node.bit % 8))
6562

66-
node.bit++
67-
n.nodes = append(n.nodes, netNode{
68-
pointer: rightPointer,
69-
ip: ipRight,
70-
bit: node.bit,
71-
})
63+
rightPointer, err := n.reader.readNode(node.pointer, 1)
64+
if err != nil {
65+
n.err = err
66+
return false
67+
}
7268

73-
node.pointer, err = n.reader.readNode(node.pointer, 0)
74-
if err != nil {
75-
n.err = err
76-
return false
77-
}
69+
node.bit++
70+
n.nodes = append(n.nodes, netNode{
71+
pointer: rightPointer,
72+
ip: ipRight,
73+
bit: node.bit,
74+
})
7875

79-
} else if node.pointer > n.reader.Metadata.NodeCount {
80-
n.lastNode = node
81-
return true
82-
} else {
83-
break
76+
node.pointer, err = n.reader.readNode(node.pointer, 0)
77+
if err != nil {
78+
n.err = err
79+
return false
8480
}
8581
}
8682
}

0 commit comments

Comments
 (0)