From be6755575685b2786637ba4815bcea768f234bbc Mon Sep 17 00:00:00 2001 From: Andrew Noyes Date: Thu, 1 Aug 2024 13:13:55 -0700 Subject: [PATCH] Simplify more "down left spine" loops --- ConflictSet.cpp | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/ConflictSet.cpp b/ConflictSet.cpp index c947a2b..8734c02 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -2513,14 +2513,9 @@ bool checkRangeStartsWith(Node *n, std::span key, int begin, __builtin_unreachable(); // GCOVR_EXCL_LINE downLeftSpine: - for (;;) { - if (n->entryPresent) { - return n->entry.rangeVersion <= readVersion; - } - int c = getChildGeq(n, 0); - assert(c >= 0); - n = getChildExists(n, c); + for (; !n->entryPresent; n = getFirstChildExists(n)) { } + return n->entry.rangeVersion <= readVersion; } namespace { @@ -2633,15 +2628,10 @@ template struct CheckRangeLeftSide { } bool downLeftSpine() { - for (;;) { - if (n->entryPresent) { - ok = n->entry.rangeVersion <= readVersion; - return true; - } - int c = getChildGeq(n, 0); - assert(c >= 0); - n = getChildExists(n, c); + for (; !n->entryPresent; n = getFirstChildExists(n)) { } + ok = n->entry.rangeVersion <= readVersion; + return true; } }; @@ -2770,15 +2760,10 @@ template struct CheckRangeRightSide { } bool downLeftSpine() { - for (;;) { - if (n->entryPresent) { - ok = n->entry.rangeVersion <= readVersion; - return true; - } - int c = getChildGeq(n, 0); - assert(c >= 0); - n = getChildExists(n, c); + for (; !n->entryPresent; n = getFirstChildExists(n)) { } + ok = n->entry.rangeVersion <= readVersion; + return true; } }; } // namespace