diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-12 11:18:11 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-12-12 11:18:11 +0000 |
commit | b7f8ea0c57155e6057450f6ef928c1f6eb7b7f94 (patch) | |
tree | 4ae303839b0dbaa1ad8f957775a336b90f59169a /searchlib | |
parent | df2a40fa681b386b94734810ae9b8219d8393ef3 (diff) |
Simplify RawResultNode::min/max by using cmp, which already handles different lengths.
Diffstat (limited to 'searchlib')
-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); } } |