Fix invalid offsetof warnings

This commit is contained in:
2024-03-15 21:37:21 -07:00
parent 671da5d096
commit 6d7e3c9849
+2 -3
View File
@@ -322,8 +322,7 @@ inline void Node3::copyChildrenAndKeyFrom(const Node0 &other) {
inline void Node3::copyChildrenAndKeyFrom(const Node3 &other) { inline void Node3::copyChildrenAndKeyFrom(const Node3 &other) {
memcpy((char *)this + kNodeCopyBegin, (char *)&other + kNodeCopyBegin, memcpy((char *)this + kNodeCopyBegin, (char *)&other + kNodeCopyBegin,
kNodeCopySize); kNodeCopySize);
memcpy(index, other.index, memcpy(index, other.index, sizeof(*this) - sizeof(Node) + partialKeyLen);
sizeof(*this) - offsetof(Node3, index) + partialKeyLen);
for (int i = 0; i < numChildren; ++i) { for (int i = 0; i < numChildren; ++i) {
assert(children[i].child->parent == &other); assert(children[i].child->parent == &other);
children[i].child->parent = this; children[i].child->parent = this;
@@ -409,7 +408,7 @@ inline void Node48::copyChildrenAndKeyFrom(const Node48 &other) {
memcpy((char *)this + kNodeCopyBegin, (char *)&other + kNodeCopyBegin, memcpy((char *)this + kNodeCopyBegin, (char *)&other + kNodeCopyBegin,
kNodeCopySize); kNodeCopySize);
memcpy(&bitSet, &other.bitSet, memcpy(&bitSet, &other.bitSet,
offsetof(Node48, children) - offsetof(Node48, bitSet)); sizeof(*this) - sizeof(Node) - sizeof(children));
for (int i = 0; i < numChildren; ++i) { for (int i = 0; i < numChildren; ++i) {
children[i] = other.children[i]; children[i] = other.children[i];
assert(children[i].child->parent == &other); assert(children[i].child->parent == &other);