summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-12-12 11:18:11 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-12-12 11:18:11 +0000
commitb7f8ea0c57155e6057450f6ef928c1f6eb7b7f94 (patch)
tree4ae303839b0dbaa1ad8f957775a336b90f59169a /searchlib
parentdf2a40fa681b386b94734810ae9b8219d8393ef3 (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.cpp37
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);
}
}