aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGreg Sanders <gsanders87@gmail.com>2024-03-26 08:41:06 -0400
committerGreg Sanders <gsanders87@gmail.com>2024-03-26 08:41:06 -0400
commita9d42b9aa579f54922ffd17fdeb61e704539b92c (patch)
tree8b0dee19e07cbb8019c7090cd58d74d3368ca0f0 /src
parentcebcced65e8fdbd54893d4852d5ed6b85a8b0c45 (diff)
downloadbitcoin-a9d42b9aa579f54922ffd17fdeb61e704539b92c.tar.xz
CompareFeerateDiagram: short-circuit comparison when detected as incomparable
Diffstat (limited to 'src')
-rw-r--r--src/util/feefrac.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/util/feefrac.cpp b/src/util/feefrac.cpp
index 215498f287..68fb836936 100644
--- a/src/util/feefrac.cpp
+++ b/src/util/feefrac.cpp
@@ -76,10 +76,12 @@ std::partial_ordering CompareFeerateDiagram(Span<const FeeFrac> dia0, Span<const
if (std::is_gt(cmp)) better_somewhere[unproc_side] = true;
if (std::is_lt(cmp)) better_somewhere[!unproc_side] = true;
++next_index[unproc_side];
+
+ // If both diagrams are better somewhere, they are incomparable.
+ if (better_somewhere[0] && better_somewhere[1]) return std::partial_ordering::unordered;
+
} while(true);
- // If both diagrams are better somewhere, they are incomparable.
- if (better_somewhere[0] && better_somewhere[1]) return std::partial_ordering::unordered;
// Otherwise compare the better_somewhere values.
return better_somewhere[0] <=> better_somewhere[1];
}