diff --git a/ConflictSet.cpp b/ConflictSet.cpp index dde25fd..ceb3b71 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -899,6 +899,7 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity, case Type_Node48: { auto *self48 = (Node48 *)self; auto *newSelf = allocators->node48.allocate(capacity); + memset(newSelf->index, -1, sizeof(newSelf->index)); memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin, kNodeCopySize); memcpy(newSelf->partialKey(), self48->partialKey(), self->partialKeyLen); @@ -926,6 +927,9 @@ void freeAndMakeCapacityAtLeast(Node *&self, int capacity, case Type_Node256: { auto *self256 = (Node256 *)self; auto *newSelf = allocators->node256.allocate(capacity); + for (int i = 0; i < 256; ++i) { + newSelf->children[i].child = nullptr; + } memcpy((char *)newSelf + kNodeCopyBegin, (char *)self + kNodeCopyBegin, kNodeCopySize); memcpy(newSelf->partialKey(), self256->partialKey(), self->partialKeyLen);