diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 153286d..553fb11 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -571,11 +571,7 @@ inline void Node48::copyChildrenAndKeyFrom(const Node16 &other) { } // The reverseIndex bytes beyond numChildren are initialized so that the // SIMD loads of a full 16-byte page in scan16 are well-defined (reading - // indeterminate bytes is UB in C++). valgrind then treats them as undefined - // so that it can still flag any read that relies on them. - VALGRIND_MAKE_MEM_UNDEFINED(reverseIndex + numChildren, - sizeof(reverseIndex) - - numChildren * sizeof(reverseIndex[0])); + // indeterminate bytes is UB in C++). } inline void Node48::copyChildrenAndKeyFrom(const Node48 &other) { @@ -626,11 +622,7 @@ inline void Node48::copyChildrenAndKeyFrom(const Node256 &other) { memcpy(partialKey(), &other + 1, partialKeyLen); // The reverseIndex bytes beyond numChildren are initialized so that the // SIMD loads of a full 16-byte page in scan16 are well-defined (reading - // indeterminate bytes is UB in C++). valgrind then treats them as undefined - // so that it can still flag any read that relies on them. - VALGRIND_MAKE_MEM_UNDEFINED(reverseIndex + numChildren, - sizeof(reverseIndex) - - numChildren * sizeof(reverseIndex[0])); + // indeterminate bytes is UB in C++). } inline void Node256::copyChildrenAndKeyFrom(const Node48 &other) { @@ -2024,8 +2016,6 @@ Node *erase(Node *self, WriteContext *writeContext, bool logical) { } VALGRIND_MAKE_MEM_UNDEFINED(parent48->children + lastChildrenIndex, sizeof(parent48->children[0])); - VALGRIND_MAKE_MEM_UNDEFINED(parent48->reverseIndex + lastChildrenIndex, - sizeof(parent48->reverseIndex[0])); if (needsDownsize(parent48)) { downsize(parent48, writeContext);