summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahooinc.com>2022-12-12 15:01:17 +0100
committerGitHub <noreply@github.com>2022-12-12 15:01:17 +0100
commit0e7590326d59b2d2309a0198f30a5c4675ed3e34 (patch)
tree58f26aeccb87e3a0a9a9327a8f476630fbcb3e7d
parent2c4dd1e7ce7755259a994250aa246ab09a9da278 (diff)
parentb7f8ea0c57155e6057450f6ef928c1f6eb7b7f94 (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.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);
}
}