From 978a7585b67e25891d2a654db799c802bee3255a Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Sun, 13 Oct 2024 11:27:36 -0700 Subject: [PATCH] Remove backtrack label from checkRangeRightSide --- ConflictSet.cpp | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/ConflictSet.cpp b/ConflictSet.cpp index f589372..f3d48cf 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -2520,7 +2520,11 @@ bool checkRangeRightSide(Node *n, std::span 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 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 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)) { }