diff options
author | Greg Sanders <gsanders87@gmail.com> | 2024-03-26 08:41:06 -0400 |
---|---|---|
committer | Greg Sanders <gsanders87@gmail.com> | 2024-03-26 08:41:06 -0400 |
commit | a9d42b9aa579f54922ffd17fdeb61e704539b92c (patch) | |
tree | 8b0dee19e07cbb8019c7090cd58d74d3368ca0f0 /src/util | |
parent | cebcced65e8fdbd54893d4852d5ed6b85a8b0c45 (diff) | |
download | bitcoin-a9d42b9aa579f54922ffd17fdeb61e704539b92c.tar.xz |
CompareFeerateDiagram: short-circuit comparison when detected as incomparable
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/feefrac.cpp | 6 |
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]; } |