Remove dead code
This commit is contained in:
129
ConflictSet.cpp
129
ConflictSet.cpp
@@ -1213,135 +1213,6 @@ TaggedNodePointer getChild(Node *self, uint8_t index) {
|
||||
}
|
||||
}
|
||||
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node0 *, TrivialSpan &,
|
||||
InternalVersionT) {
|
||||
return nullptr;
|
||||
}
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node3 *self,
|
||||
TrivialSpan &remaining,
|
||||
InternalVersionT maxVersion) {
|
||||
assert(remaining.size() > 0);
|
||||
int index = remaining.front();
|
||||
auto key = remaining.subspan(1, remaining.size() - 1);
|
||||
int i = getNodeIndex(self, index);
|
||||
if (i < 0) {
|
||||
return nullptr;
|
||||
}
|
||||
Node *c = self->children[i];
|
||||
if (c->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(c->partialKeyLen, key.size());
|
||||
int partialKeyIndex =
|
||||
longestCommonPrefix(c->partialKey(), key.data(), commonLen);
|
||||
if (partialKeyIndex < c->partialKeyLen) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
remaining = key.subspan(c->partialKeyLen, key.size() - c->partialKeyLen);
|
||||
self->childMaxVersion[i] = maxVersion;
|
||||
return &self->children[i];
|
||||
}
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node16 *self,
|
||||
TrivialSpan &remaining,
|
||||
InternalVersionT maxVersion) {
|
||||
assert(remaining.size() > 0);
|
||||
int index = remaining.front();
|
||||
auto key = remaining.subspan(1, remaining.size() - 1);
|
||||
int i = getNodeIndex(self, index);
|
||||
if (i < 0) {
|
||||
return nullptr;
|
||||
}
|
||||
Node *c = self->children[i];
|
||||
if (c->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(c->partialKeyLen, key.size());
|
||||
int partialKeyIndex =
|
||||
longestCommonPrefix(c->partialKey(), key.data(), commonLen);
|
||||
if (partialKeyIndex < c->partialKeyLen) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
remaining = key.subspan(c->partialKeyLen, key.size() - c->partialKeyLen);
|
||||
self->childMaxVersion[i] = maxVersion;
|
||||
return &self->children[i];
|
||||
}
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node48 *self,
|
||||
TrivialSpan &remaining,
|
||||
InternalVersionT maxVersion) {
|
||||
assert(remaining.size() > 0);
|
||||
int index = remaining.front();
|
||||
auto key = remaining.subspan(1, remaining.size() - 1);
|
||||
int i = self->index[index];
|
||||
if (i < 0) {
|
||||
return nullptr;
|
||||
}
|
||||
Node *c = self->children[i];
|
||||
if (c->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(c->partialKeyLen, key.size());
|
||||
int partialKeyIndex =
|
||||
longestCommonPrefix(c->partialKey(), key.data(), commonLen);
|
||||
if (partialKeyIndex < c->partialKeyLen) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
remaining = key.subspan(c->partialKeyLen, key.size() - c->partialKeyLen);
|
||||
self->childMaxVersion[i] = maxVersion;
|
||||
self->maxOfMax[i >> Node48::kMaxOfMaxShift] =
|
||||
std::max(self->maxOfMax[i >> Node48::kMaxOfMaxShift], maxVersion);
|
||||
return &self->children[i];
|
||||
}
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node256 *self,
|
||||
TrivialSpan &remaining,
|
||||
InternalVersionT maxVersion) {
|
||||
assert(remaining.size() > 0);
|
||||
int index = remaining.front();
|
||||
auto key = remaining.subspan(1, remaining.size() - 1);
|
||||
auto &n = self->children[index];
|
||||
if (n == nullptr) {
|
||||
return nullptr;
|
||||
}
|
||||
Node *c = n;
|
||||
if (c->partialKeyLen > 0) {
|
||||
int commonLen = std::min<int>(c->partialKeyLen, key.size());
|
||||
int partialKeyIndex =
|
||||
longestCommonPrefix(c->partialKey(), key.data(), commonLen);
|
||||
if (partialKeyIndex < c->partialKeyLen) {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
remaining = key.subspan(c->partialKeyLen, key.size() - c->partialKeyLen);
|
||||
self->childMaxVersion[index] = maxVersion;
|
||||
self->maxOfMax[index >> Node256::kMaxOfMaxShift] =
|
||||
std::max(self->maxOfMax[index >> Node256::kMaxOfMaxShift], maxVersion);
|
||||
return &n;
|
||||
}
|
||||
|
||||
// Precondition: remaining.size() > 0
|
||||
// If a child of self lies along the search path of remaining, return a pointer
|
||||
// to that child, update max version, and consume the matching prefix bytes from
|
||||
// remaining. Otherwise return nullptr without changing the tree at all.
|
||||
TaggedNodePointer *getChildUpdatingMaxVersion(Node *self,
|
||||
TrivialSpan &remaining,
|
||||
InternalVersionT maxVersion) {
|
||||
switch (self->getType()) {
|
||||
case Type_Node0:
|
||||
return getChildUpdatingMaxVersion(static_cast<Node0 *>(self), remaining,
|
||||
maxVersion);
|
||||
case Type_Node3:
|
||||
return getChildUpdatingMaxVersion(static_cast<Node3 *>(self), remaining,
|
||||
maxVersion);
|
||||
case Type_Node16:
|
||||
return getChildUpdatingMaxVersion(static_cast<Node16 *>(self), remaining,
|
||||
maxVersion);
|
||||
case Type_Node48:
|
||||
return getChildUpdatingMaxVersion(static_cast<Node48 *>(self), remaining,
|
||||
maxVersion);
|
||||
case Type_Node256:
|
||||
return getChildUpdatingMaxVersion(static_cast<Node256 *>(self), remaining,
|
||||
maxVersion);
|
||||
default: // GCOVR_EXCL_LINE
|
||||
__builtin_unreachable(); // GCOVR_EXCL_LINE
|
||||
}
|
||||
}
|
||||
|
||||
struct ChildAndMaxVersion {
|
||||
TaggedNodePointer child;
|
||||
InternalVersionT maxVersion;
|
||||
|
Reference in New Issue
Block a user