diff --git a/ConflictSet.cpp b/ConflictSet.cpp index b5a6d64..b8a8e8e 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -1836,9 +1836,8 @@ void eraseBetween(Node48 *&n, int begin, int end, WriteContext *tls) { *nodeOut++ = n->children[i]; *indexOut++ = n->reverseIndex[i]; *maxVOut++ = n->childMaxVersion[i]; - n->maxOfMax[n->reverseIndex[i] >> Node48::kMaxOfMaxShift] = - std::max(n->maxOfMax[n->reverseIndex[i] >> Node48::kMaxOfMaxShift], - n->childMaxVersion[i]); + n->maxOfMax[i >> Node48::kMaxOfMaxShift] = std::max( + n->maxOfMax[i >> Node48::kMaxOfMaxShift], n->childMaxVersion[i]); n->bitSet.set(n->reverseIndex[i]); n->index[n->reverseIndex[i]] = n->nextFree++; } @@ -1895,8 +1894,7 @@ void eraseBetween(Node256 *&n, int begin, int end, WriteContext *tls) { newNode->copyChildrenAndKeyFrom(*n); tls->release(n); (Node *&)n = newNode; - } - if (n->numChildren <= Node48::kMaxNodes) { + } else if (n->numChildren <= Node48::kMaxNodes) { auto *newNode = tls->allocate(n->partialKeyLen); newNode->copyChildrenAndKeyFrom(*n); tls->release(n);