diff options
author | Tor Egge <Tor.Egge@yahooinc.com> | 2022-12-12 15:01:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-12 15:01:17 +0100 |
commit | 0e7590326d59b2d2309a0198f30a5c4675ed3e34 (patch) | |
tree | 58f26aeccb87e3a0a9a9327a8f476630fbcb3e7d | |
parent | 2c4dd1e7ce7755259a994250aa246ab09a9da278 (diff) | |
parent | b7f8ea0c57155e6057450f6ef928c1f6eb7b7f94 (diff) |
Merge pull request #25212 from vespa-engine/balder/simplify-min-max-by-using-cmp
Simplify RawResultNode::min/max by using cmp, which already handles d…
-rw-r--r-- | searchlib/src/vespa/searchlib/expression/resultnodes.cpp | 37 |
1 files changed, 6 insertions, 31 deletions
diff --git a/searchlib/src/vespa/searchlib/expression/resultnodes.cpp b/searchlib/src/vespa/searchlib/expression/resultnodes.cpp index 5222ac30698..7fb3ab1b6cf 100644 --- a/searchlib/src/vespa/searchlib/expression/resultnodes.cpp +++ b/searchlib/src/vespa/searchlib/expression/resultnodes.cpp @@ -239,43 +239,18 @@ RawResultNode::add(const ResultNode & b) void RawResultNode::min(const ResultNode & b) { - char buf[32]; - ConstBufferRef s(b.getString(BufferRef(buf, sizeof(buf)))); - - size_t min_sz = std::min(s.size(), _value.size()); - if (min_sz == 0) { - if ( ! _value.empty()) { - setBuffer("", 0); - } - } else { - int cmp = memcmp(_value.data(), s.data(), min_sz); - if (cmp > 0) { - setBuffer(s.data(), s.size()); - } else if (cmp == 0 && cmpNum(_value.size(), s.size()) > 0) { - setBuffer(s.data(), s.size()); - } + int res = cmp(b); + if (res > 0) { + set(b); } } void RawResultNode::max(const ResultNode & b) { - char buf[32]; - ConstBufferRef s(b.getString(BufferRef(buf, sizeof(buf)))); - - size_t min_sz = std::min(s.size(), _value.size()); - if (min_sz == 0) { - if (s.size() > _value.size()) { - setBuffer(s.data(), s.size()); - } - - } else { - int cmp = memcmp(_value.data(), s.data(), min_sz); - if (cmp < 0) { - setBuffer(s.data(), s.size()); - } else if (cmp == 0 && cmpNum(_value.size(), s.size()) < 0) { - setBuffer(s.data(), s.size()); - } + int res = cmp(b); + if (res < 0) { + set(b); } } |