Erase along left spine. Not faster
This commit is contained in:
@@ -3266,6 +3266,27 @@ void addWriteRange(Node *&root, std::span<const uint8_t> begin,
|
|||||||
|
|
||||||
eraseBetween(*useAsRoot, begin[0] + 1, end[0], tls);
|
eraseBetween(*useAsRoot, begin[0] + 1, end[0], tls);
|
||||||
|
|
||||||
|
// // Erase along left spine
|
||||||
|
// for (auto [n, key] = std::make_tuple(useAsRoot, begin);;) {
|
||||||
|
// auto before = key;
|
||||||
|
// auto **child = &getOrCreateChild(*n, key, writeVersion, tls);
|
||||||
|
// if (key.size() > 0) {
|
||||||
|
// eraseBetween(*child, int(key[0]) + 1, 256, tls);
|
||||||
|
// if ((*child)->numChildren == 1 && !(*child)->entryPresent) {
|
||||||
|
// Node *dummy = nullptr;
|
||||||
|
// mergeWithChild(*child, tls, impl, dummy,
|
||||||
|
// static_cast<Node3 *>(*child));
|
||||||
|
// key = before;
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// eraseBetween(*child, 0, 256, tls);
|
||||||
|
// beginNode = *child;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// n = child;
|
||||||
|
// }
|
||||||
|
|
||||||
for (beginNode = nextLogical(beginNode); beginNode != endNode;
|
for (beginNode = nextLogical(beginNode); beginNode != endNode;
|
||||||
beginNode = erase(beginNode, tls, impl, /*logical*/ true, endNode)) {
|
beginNode = erase(beginNode, tls, impl, /*logical*/ true, endNode)) {
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user