Remove backtrack label from checkRangeRightSide

This commit is contained in:
2024-10-13 11:27:36 -07:00
parent 71b3c7fb7f
commit 978a7585b6

View File

@@ -2520,7 +2520,11 @@ bool checkRangeRightSide(Node *n, std::span<const uint8_t> key, int prefixLen,
if (n != commonPrefixNode && maxVersion(n) > readVersion) {
return false;
}
goto backtrack;
n = nextSibling(n);
if (n == nullptr) {
return true;
}
goto downLeftSpine;
}
}
@@ -2543,7 +2547,11 @@ bool checkRangeRightSide(Node *n, std::span<const uint8_t> key, int prefixLen,
maxVersion(n) > readVersion) {
return false;
}
goto backtrack;
n = nextSibling(n);
if (n == nullptr) {
return true;
}
goto downLeftSpine;
}
}
if (commonLen == n->partialKeyLen) {
@@ -2569,19 +2577,6 @@ bool checkRangeRightSide(Node *n, std::span<const uint8_t> key, int prefixLen,
return false;
}
}
backtrack:
for (;;) {
if (n->parent == nullptr) {
return true;
}
auto next = getChildGeq(n->parent, n->parentsIndex + 1);
if (next == nullptr) {
n = n->parent;
} else {
n = next;
goto downLeftSpine;
}
}
downLeftSpine:
for (; !n->entryPresent; n = getFirstChildExists(n)) {
}