diff --git a/ConflictSet.cpp b/ConflictSet.cpp index f1e0955..c7a9774 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -3266,6 +3266,27 @@ void addWriteRange(Node *&root, std::span 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(*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)) { }