diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-07-23 14:37:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-23 14:37:08 +0200 |
commit | 6868e05b6890901d15f15bfb29544eb079854e6b (patch) | |
tree | 36474aeb3f3e91d0db661568e2bbcc81b1c75d91 /searchlib | |
parent | c22ac79cf445a1917f2e484cc41d8508dbc776bc (diff) | |
parent | 2a98aea2a9ae0ab134900852ddb1e0b98cccf56b (diff) |
Merge pull request #6447 from vespa-engine/balder/fix-signedness-in-weighted-set
Balder/fix signedness in weighted set
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/parsequery/simplequerystack.cpp | 21 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp | 26 |
2 files changed, 22 insertions, 25 deletions
diff --git a/searchlib/src/vespa/searchlib/parsequery/simplequerystack.cpp b/searchlib/src/vespa/searchlib/parsequery/simplequerystack.cpp index ef85835d9b6..36d76629f87 100644 --- a/searchlib/src/vespa/searchlib/parsequery/simplequerystack.cpp +++ b/searchlib/src/vespa/searchlib/parsequery/simplequerystack.cpp @@ -159,6 +159,7 @@ SimpleQueryStack::StackbufToString(const vespalib::stringref &theBuf) const char *p = theBuf.begin(); const char *ep = theBuf.end(); uint64_t tmp(0); + int64_t tmpI64(0); uint8_t flags(0); while (p < ep) { vespalib::string metaStr; @@ -248,22 +249,20 @@ SimpleQueryStack::StackbufToString(const vespalib::stringref &theBuf) termRef = p; p += termRefLen; result.append(make_string("%c/%d:%.*s/%d:%.*s~", _G_ItemName[type], - idxRefLen, idxRefLen, idxRef, - termRefLen, termRefLen, termRef)); + idxRefLen, idxRefLen, idxRef, termRefLen, termRefLen, termRef)); break; case ParseItem::ITEM_PURE_WEIGHTED_STRING: p += vespalib::compress::Integer::decompressPositive(tmp, p); termRefLen = tmp; termRef = p; p += termRefLen; - result.append(make_string("%c/%d:%.*s~", _G_ItemName[type], - termRefLen, termRefLen, termRef)); + result.append(make_string("%c/%d:%.*s~", _G_ItemName[type], termRefLen, termRefLen, termRef)); break; case ParseItem::ITEM_PURE_WEIGHTED_LONG: - tmp = vespalib::nbo::n2h(*reinterpret_cast<const uint64_t *>(p)); + tmpI64 = vespalib::nbo::n2h(*reinterpret_cast<const int64_t *>(p)); p += sizeof(uint64_t); - result.append(make_string("%c/%lu", _G_ItemName[type], tmp)); + result.append(make_string("%c/%" PRId64, _G_ItemName[type], tmpI64)); break; case ParseItem::ITEM_PHRASE: @@ -281,13 +280,12 @@ SimpleQueryStack::StackbufToString(const vespalib::stringref &theBuf) uint32_t targetNumHits = tmp; double scoreThreshold = vespalib::nbo::n2h(*reinterpret_cast<const double *>(p)); p += sizeof(double); - double thresholdBoostFactor = vespalib::nbo::n2h(*reinterpret_cast<const double *>(p)); // thresholdBoostFactor + double thresholdBoostFactor = vespalib::nbo::n2h(*reinterpret_cast<const double *>(p)); p += sizeof(double); result.append(make_string("%c/%d/%d:%.*s(%u,%f,%f)~", _G_ItemName[type], arity, idxRefLen, - idxRefLen, idxRef, targetNumHits, scoreThreshold, thresholdBoostFactor)); + idxRefLen, idxRef, targetNumHits, scoreThreshold, thresholdBoostFactor)); } else { - result.append(make_string("%c/%d/%d:%.*s~", _G_ItemName[type], arity, idxRefLen, - idxRefLen, idxRef)); + result.append(make_string("%c/%d/%d:%.*s~", _G_ItemName[type], arity, idxRefLen, idxRefLen, idxRef)); } break; @@ -297,8 +295,7 @@ SimpleQueryStack::StackbufToString(const vespalib::stringref &theBuf) idxRef = p; p += idxRefLen; size_t feature_count = ReadCompressedPositiveInt(p); - result.append(make_string( - "%c/%d:%.*s/%zu(", _G_ItemName[type], idxRefLen, idxRefLen, idxRef, feature_count)); + result.append(make_string("%c/%d:%.*s/%zu(", _G_ItemName[type], idxRefLen, idxRefLen, idxRef, feature_count)); for (size_t i = 0; i < feature_count; ++i) { vespalib::string key = ReadString(p); vespalib::string value = ReadString(p); diff --git a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp index 542e7990c1e..1938222b4ac 100644 --- a/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp +++ b/searchlib/src/vespa/searchlib/parsequery/stackdumpiterator.cpp @@ -25,9 +25,9 @@ SimpleQueryStackDumpIterator::SimpleQueryStackDumpIterator(const vespalib::strin _currArg2(0), _currArg3(0), _predicate_query_term(), - _currIndexName(NULL), + _currIndexName(nullptr), _currIndexNameLen(0), - _currTerm(NULL), + _currTerm(nullptr), _currTermLen(0), _generatedTerm(), _currNum(-1) @@ -114,9 +114,9 @@ SimpleQueryStackDumpIterator::next() _currArity = tmp; if (p > _bufEnd) return false; _currArg1 = 0; - _currIndexName = NULL; + _currIndexName = nullptr; _currIndexNameLen = 0; - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; break; @@ -129,9 +129,9 @@ SimpleQueryStackDumpIterator::next() p += vespalib::compress::Integer::decompressPositive(tmp, p); _currArg1 = tmp; if (p > _bufEnd) return false; - _currIndexName = NULL; + _currIndexName = nullptr; _currIndexNameLen = 0; - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; break; @@ -149,7 +149,7 @@ SimpleQueryStackDumpIterator::next() _currIndexName = p; p += _currIndexNameLen; if (p > _bufEnd) return false; - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; break; case ParseItem::ITEM_SAME_ELEMENT: @@ -163,7 +163,7 @@ SimpleQueryStackDumpIterator::next() _currIndexName = p; p += _currIndexNameLen; if (p > _bufEnd) return false; - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; break; @@ -180,12 +180,12 @@ SimpleQueryStackDumpIterator::next() _currArity = 0; break; case ParseItem::ITEM_PURE_WEIGHTED_LONG: - if (p + 8 > _bufEnd) return false; + if (p + sizeof(int64_t) > _bufEnd) return false; _generatedTerm.clear(); - _generatedTerm << vespalib::nbo::n2h(*(const uint64_t *)p); + _generatedTerm << vespalib::nbo::n2h(*reinterpret_cast<const int64_t *>(p)); _currTerm = _generatedTerm.c_str(); _currTermLen = _generatedTerm.size(); - p += 8; + p += sizeof(int64_t); if (p > _bufEnd) return false; _currArg1 = 0; @@ -197,7 +197,7 @@ SimpleQueryStackDumpIterator::next() _currIndexName = p; p += _currIndexNameLen; _currArity = readCompressedPositiveInt(p); - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; if (p > _bufEnd) return false; } catch (...) { @@ -281,7 +281,7 @@ SimpleQueryStackDumpIterator::next() } else { _currArg1 = 0; } - _currTerm = NULL; + _currTerm = nullptr; _currTermLen = 0; break; |