diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 4a7aac8..e29094a 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -1419,12 +1419,13 @@ bool checkRangeRead(Node *n, std::span begin, longestCommonPrefixPartialKey(self->partialKey, key.data(), commonLen); if (partialKeyIndex < self->partialKeyLen) { auto *old = self; + self = allocators->node4.allocate(); - self->maxVersion = old->maxVersion; + + memcpy((void *)self, old, offsetof(Node, type)); self->partialKeyLen = partialKeyIndex; - self->parent = old->parent; - self->parentsIndex = old->parentsIndex; - memcpy(self->partialKey, old->partialKey, partialKeyIndex); + self->entryPresent = false; + self->numChildren = 0; getOrCreateChild(self, old->partialKey[partialKeyIndex], allocators) = old;