diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 561c352..be05a46 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -322,7 +322,8 @@ inline void Node3::copyChildrenAndKeyFrom(const Node0 &other) { inline void Node3::copyChildrenAndKeyFrom(const Node3 &other) { memcpy((char *)this + kNodeCopyBegin, (char *)&other + kNodeCopyBegin, kNodeCopySize); - memcpy(index, other.index, sizeof(*this) - sizeof(Node) + partialKeyLen); + memcpy(index, other.index, sizeof(*this) - sizeof(Node)); + memcpy(partialKey(), &other + 1, partialKeyLen); for (int i = 0; i < numChildren; ++i) { assert(children[i].child->parent == &other); children[i].child->parent = this;