Erase along left spine. Not faster

This commit is contained in:
2024-08-15 15:07:44 -07:00
parent 6c79847a42
commit 72469ebb6e

View File

@@ -3266,6 +3266,27 @@ void addWriteRange(Node *&root, std::span<const uint8_t> begin,
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;
beginNode = erase(beginNode, tls, impl, /*logical*/ true, endNode)) {
}