mirror of
https://github.com/corda/corda.git
synced 2024-12-19 04:57:58 +00:00
minor changes in for/while loops. Sanity check for even number of nodes (in buildMerkleTree) has now been moved before entering the loop.
This commit is contained in:
parent
c0bcbc381d
commit
0287876987
@ -32,9 +32,8 @@ sealed class MerkleTree(val hash: SecureHash) {
|
||||
var n = allLeavesHashes.size
|
||||
if (isPow2(n)) return allLeavesHashes
|
||||
val paddedHashes = ArrayList<SecureHash>(allLeavesHashes)
|
||||
while (!isPow2(n)) {
|
||||
while (!isPow2(n++)) {
|
||||
paddedHashes.add(SecureHash.zeroHash)
|
||||
n++
|
||||
}
|
||||
return paddedHashes
|
||||
}
|
||||
@ -51,16 +50,14 @@ sealed class MerkleTree(val hash: SecureHash) {
|
||||
return lastNodesList[0] //Root reached.
|
||||
} else {
|
||||
val newLevelHashes: MutableList<MerkleTree> = ArrayList()
|
||||
var i = 0
|
||||
val n = lastNodesList.size
|
||||
while (i < n) {
|
||||
require((n and 1) == 0) { "Sanity check: number of nodes should be even." }
|
||||
for (i in 0..n-2 step 2) {
|
||||
val left = lastNodesList[i]
|
||||
require(i+1 <= n-1) { "Sanity check: number of nodes should be even." }
|
||||
val right = lastNodesList[i+1]
|
||||
val newHash = left.hash.hashConcat(right.hash)
|
||||
val combined = Node(newHash, left, right)
|
||||
newLevelHashes.add(combined)
|
||||
i += 2
|
||||
}
|
||||
return buildMerkleTree(newLevelHashes)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user