From 61a03191600c73942457902312f4669fa50b2801 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 9 Jan 2019 18:25:06 +0000 Subject: Handle bool in old summary framework too. --- .../searchsummary/docsummary/docsumfieldwriter.cpp | 29 ++++---- .../searchsummary/docsummary/docsumwriter.cpp | 37 ++++------ .../vespa/searchsummary/docsummary/resultclass.h | 1 + .../searchsummary/docsummary/resultconfig.cpp | 53 ++++++-------- .../vespa/searchsummary/docsummary/resultconfig.h | 12 ++-- .../searchsummary/docsummary/resultpacker.cpp | 35 +++++---- .../vespa/searchsummary/docsummary/urlresult.cpp | 84 ++++++++++------------ .../src/vespa/searchsummary/docsummary/urlresult.h | 5 +- 8 files changed, 114 insertions(+), 142 deletions(-) (limited to 'searchsummary/src') diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp index 18e7e471663..1eb8399845c 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumfieldwriter.cpp @@ -29,10 +29,10 @@ IDocsumFieldWriter::setFieldWriterStateIndex(uint32_t) //-------------------------------------------------------------------------- -EmptyDFW::EmptyDFW() { } +EmptyDFW::EmptyDFW() = default; -EmptyDFW::~EmptyDFW() { } +EmptyDFW::~EmptyDFW() = default; void EmptyDFW::insertField(uint32_t /*docid*/, @@ -55,9 +55,7 @@ CopyDFW::CopyDFW() } -CopyDFW::~CopyDFW() -{ -} +CopyDFW::~CopyDFW() = default; bool @@ -69,11 +67,10 @@ CopyDFW::Init(const ResultConfig & config, const char *inputField) LOG(warning, "no docsum format contains field '%s'; copied fields will be empty", inputField); } - for (ResultConfig::const_iterator it(config.begin()), mt(config.end()); it != mt; it++) { - const ResConfigEntry *entry = - it->GetEntry(it->GetIndexFromEnumValue(_inputFieldEnumValue)); + for (const auto & field : config) { + const ResConfigEntry *entry = field.GetEntry(field.GetIndexFromEnumValue(_inputFieldEnumValue)); - if (entry != NULL && + if (entry != nullptr && !IsRuntimeCompatible(entry->_type, RES_INT) && !IsRuntimeCompatible(entry->_type, RES_DOUBLE) && !IsRuntimeCompatible(entry->_type, RES_INT64) && @@ -81,7 +78,7 @@ CopyDFW::Init(const ResultConfig & config, const char *inputField) !IsRuntimeCompatible(entry->_type, RES_DATA)) { LOG(warning, "cannot use docsum field '%s' as input to copy; type conflict with result class %d (%s)", - inputField, it->GetClassID(), it->GetClassName()); + inputField, field.GetClassID(), field.GetClassName()); return false; } } @@ -90,16 +87,13 @@ CopyDFW::Init(const ResultConfig & config, const char *inputField) void -CopyDFW::insertField(uint32_t /*docid*/, - GeneralResult *gres, - GetDocsumsState *state, - ResType type, - vespalib::slime::Inserter &target) +CopyDFW::insertField(uint32_t /*docid*/, GeneralResult *gres, GetDocsumsState *state, ResType type, + vespalib::slime::Inserter &target) { int idx = gres->GetClass()->GetIndexFromEnumValue(_inputFieldEnumValue); ResEntry *entry = gres->GetEntry(idx); - if (entry != NULL && + if (entry != nullptr && IsRuntimeCompatible(entry->_type, type)) { switch (type) { @@ -117,6 +111,9 @@ CopyDFW::insertField(uint32_t /*docid*/, uint8_t val8 = entry->_intval; target.insertLong(val8); break; } + case RES_BOOL: { + target.insertBool(entry->_intval != 0); + break; } case RES_FLOAT: { float valfloat = entry->_doubleval; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp index 722ea9d9000..72dbddda0b4 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/docsumwriter.cpp @@ -78,23 +78,23 @@ DynamicDocsumWriter::resolveInputClass(ResolveClassInfo &rci, uint32_t id) const } } -static void convertEntry(GetDocsumsState *state, - const ResConfigEntry *resCfg, - const ResEntry *entry, - Inserter &inserter, - Slime &slime) +static void convertEntry(GetDocsumsState *state, const ResConfigEntry *resCfg, const ResEntry *entry, + Inserter &inserter, Slime &slime) { using vespalib::slime::BinaryFormat; const char *ptr; uint32_t len; - LOG_ASSERT(resCfg != 0 && entry != 0); + LOG_ASSERT(resCfg != nullptr && entry != nullptr); switch (resCfg->_type) { case RES_INT: case RES_SHORT: case RES_BYTE: inserter.insertLong(entry->_intval); break; + case RES_BOOL: + inserter.insertBool(entry->_intval != 0); + break; case RES_FLOAT: case RES_DOUBLE: inserter.insertDouble(entry->_doubleval); @@ -130,12 +130,8 @@ static void convertEntry(GetDocsumsState *state, void -DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, - uint32_t docid, - GetDocsumsState *state, - IDocsumStore *docinfos, - vespalib::Slime & slime, - vespalib::slime::Inserter & topInserter) +DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, uint32_t docid, GetDocsumsState *state, + IDocsumStore *docinfos, vespalib::Slime & slime, vespalib::slime::Inserter & topInserter) { if (rci.allGenerated) { // generate docsum entry on-the-fly @@ -144,8 +140,7 @@ DynamicDocsumWriter::insertDocsum(const ResolveClassInfo & rci, const ResConfigEntry *resCfg = rci.outputClass->GetEntry(i); IDocsumFieldWriter *writer = _overrideTable[resCfg->_enumValue]; if (! writer->isDefaultValue(docid, state)) { - const Memory field_name(resCfg->_bindname.data(), - resCfg->_bindname.size()); + const Memory field_name(resCfg->_bindname.data(), resCfg->_bindname.size()); ObjectInserter inserter(docsum, field_name); writer->insertField(docid, nullptr, state, resCfg->_type, inserter); } @@ -272,10 +267,10 @@ DynamicDocsumWriter::Override(const char *fieldName, IDocsumFieldWriter *writer) ++_numFieldWriterStates; } - for (ResultConfig::iterator it(_resultConfig->begin()), mt(_resultConfig->end()); it != mt; it++) { + for (auto & entry : *_resultConfig) { - if (it->GetIndexFromEnumValue(fieldEnumValue) >= 0) { - ResultClass::DynamicInfo *info = it->getDynamicInfo(); + if (entry.GetIndexFromEnumValue(fieldEnumValue) >= 0) { + ResultClass::DynamicInfo *info = entry.getDynamicInfo(); info->_overrideCnt++; if (writer->IsGenerated()) info->_generateCnt++; @@ -306,15 +301,11 @@ DynamicDocsumWriter::InitState(IAttributeManager & attrMan, GetDocsumsState *sta uint32_t -DynamicDocsumWriter::WriteDocsum(uint32_t docid, - GetDocsumsState *state, - IDocsumStore *docinfos, - search::RawBuf *target) +DynamicDocsumWriter::WriteDocsum(uint32_t docid, GetDocsumsState *state, IDocsumStore *docinfos, search::RawBuf *target) { vespalib::Slime slime; vespalib::slime::SlimeInserter inserter(slime); - ResolveClassInfo rci = resolveClassInfo(state->_args.getResultClassName(), - docinfos->getSummaryClassId()); + ResolveClassInfo rci = resolveClassInfo(state->_args.getResultClassName(), docinfos->getSummaryClassId()); insertDocsum(rci, docid, state, docinfos, slime, inserter); return slime2RawBuf(slime, *target); } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h index e7c7c799b5f..52e331cd365 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h @@ -18,6 +18,7 @@ namespace search::docsummary { enum ResType { RES_INT = 0, RES_SHORT, + RES_BOOL, RES_BYTE, RES_FLOAT, RES_DOUBLE, diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp index 1c42709826f..3758ca27adf 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp @@ -45,6 +45,7 @@ ResultConfig::GetResTypeName(ResType type) case RES_INT: return "integer"; case RES_SHORT: return "short"; case RES_BYTE: return "byte"; + case RES_BOOL: return "bool"; case RES_FLOAT: return "float"; case RES_DOUBLE: return "double"; case RES_INT64: return "int64"; @@ -73,15 +74,14 @@ ResultConfig::Reset() ResultClass * ResultConfig::AddResultClass(const char *name, uint32_t id) { - ResultClass *ret = NULL; + ResultClass *ret = nullptr; if (id != NoClassID() && (_classLookup.find(id) == _classLookup.end())) { ResultClass::UP rc(new ResultClass(name, id, _fieldEnum)); ret = rc.get(); _classLookup[id] = std::move(rc); if (_nameLookup.find(name) != _nameLookup.end()) { - LOG(warning, "Duplicate result class name: %s " - "(now maps to class id %u)", name, id); + LOG(warning, "Duplicate result class name: %s (now maps to class id %u)", name, id); } _nameLookup[name] = id; } @@ -93,7 +93,7 @@ const ResultClass* ResultConfig::LookupResultClass(uint32_t id) const { IdMap::const_iterator it(_classLookup.find(id)); - return (it != _classLookup.end()) ? it->second.get() : NULL; + return (it != _classLookup.end()) ? it->second.get() : nullptr; } uint32_t @@ -113,8 +113,8 @@ ResultConfig::LookupResultClassId(const vespalib::string &name) const void ResultConfig::CreateEnumMaps() { - for (IdMap::iterator it(_classLookup.begin()), mt(_classLookup.end()); it != mt; it++) { - it ->second->CreateEnumMap(); + for (auto & entry : _classLookup) { + entry.second->CreateEnumMap(); } } @@ -137,14 +137,12 @@ ResultConfig::ReadConfig(const vespa::config::search::SummaryConfig &cfg, const break; } ResultClass *resClass = AddResultClass(cfg.classes[i].name.c_str(), classID); - if (resClass == NULL) { - LOG(error, - "%s: unable to add classes[%d] name %s", - configId, i, cfg.classes[i].name.c_str()); + if (resClass == nullptr) { + LOG(error,"%s: unable to add classes[%d] name %s", configId, i, cfg.classes[i].name.c_str()); rc = false; break; } - for (unsigned int j = 0; rc && j < cfg.classes[i].fields.size(); j++) { + for (unsigned int j = 0; rc && (j < cfg.classes[i].fields.size()); j++) { const char *fieldtype = cfg.classes[i].fields[j].type.c_str(); const char *fieldname = cfg.classes[i].fields[j].name.c_str(); LOG(debug, "Reconfiguring class '%s' field '%s' of type '%s'", cfg.classes[i].name.c_str(), fieldname, fieldtype); @@ -152,6 +150,8 @@ ResultConfig::ReadConfig(const vespa::config::search::SummaryConfig &cfg, const rc = resClass->AddConfigEntry(fieldname, RES_INT); } else if (strcmp(fieldtype, "short") == 0) { rc = resClass->AddConfigEntry(fieldname, RES_SHORT); + } else if (strcmp(fieldtype, "bool") == 0) { + rc = resClass->AddConfigEntry(fieldname, RES_BOOL); } else if (strcmp(fieldtype, "byte") == 0) { rc = resClass->AddConfigEntry(fieldname, RES_BYTE); } else if (strcmp(fieldtype, "float") == 0) { @@ -176,17 +176,13 @@ ResultConfig::ReadConfig(const vespa::config::search::SummaryConfig &cfg, const rc = resClass->AddConfigEntry(fieldname, RES_TENSOR); } else if (strcmp(fieldtype, "featuredata") == 0) { rc = resClass->AddConfigEntry(fieldname, RES_FEATUREDATA); - } else { // FAIL: unknown field type - LOG(error, - "%s %s.fields[%d]: unknown type '%s'", - configId, cfg.classes[i].name.c_str(), j, fieldtype); + } else { + LOG(error, "%s %s.fields[%d]: unknown type '%s'", configId, cfg.classes[i].name.c_str(), j, fieldtype); rc = false; break; } - if (!rc) { // FAIL: duplicate field name - LOG(error, - "%s %s.fields[%d]: duplicate name '%s'", - configId, cfg.classes[i].name.c_str(), j, fieldname); + if (!rc) { + LOG(error, "%s %s.fields[%d]: duplicate name '%s'", configId, cfg.classes[i].name.c_str(), j, fieldname); break; } } @@ -213,14 +209,11 @@ ResultConfig::GetClassID(const char *buf, uint32_t buflen) } urlresult* -ResultConfig::Unpack(uint32_t partition, - uint32_t docid, - HitRank metric, - const char *buf, - uint32_t buflen) const +ResultConfig::Unpack(uint32_t partition, uint32_t docid, HitRank metric, + const char *buf, uint32_t buflen) const { - urlresult *ret = NULL; - const ResultClass *resClass = NULL; + urlresult *ret = nullptr; + const ResultClass *resClass = nullptr; uint32_t tmp32; if (buflen >= sizeof(tmp32)) { @@ -230,15 +223,15 @@ ResultConfig::Unpack(uint32_t partition, resClass = LookupResultClass(tmp32); } - if (resClass != NULL && (buflen > 0)) { - ret = new GeneralResult(resClass, partition, docid, metric); + if (resClass != nullptr && (buflen > 0)) { + ret = new GeneralResult(resClass, partition, docid, metric); if (ret->unpack(buf, buflen) != 0) { // FAIL: unpack delete ret; - ret = NULL; + ret = nullptr; } } - return (ret != NULL) ? ret : new badurlresult(partition, docid, metric); + return (ret != nullptr) ? ret : new badurlresult(partition, docid, metric); } } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h index eac6d4b113f..f9c8ccbaa40 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h @@ -115,6 +115,9 @@ public: return true; } switch (a) { + case RES_BYTE: + case RES_BOOL: + return (b == RES_BYTE || b == RES_BOOL); case RES_STRING: case RES_DATA: return (b == RES_STRING || b == RES_DATA); @@ -147,7 +150,8 @@ public: case RES_INT: case RES_SHORT: case RES_BYTE: - return (b == RES_INT || b == RES_SHORT || b == RES_BYTE); + case RES_BOOL: + return (b == RES_INT || b == RES_SHORT || b == RES_BYTE || b == RES_BOOL); case RES_FLOAT: case RES_DOUBLE: return (b == RES_FLOAT || b == RES_DOUBLE); @@ -287,11 +291,7 @@ public: * @param buflen length of docsum blob. **/ urlresult * - Unpack(uint32_t partition, - uint32_t docid, - HitRank metric, - const char *buf, - uint32_t buflen) const; + Unpack(uint32_t partition, uint32_t docid, HitRank metric, const char *buf, uint32_t buflen) const; }; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultpacker.cpp b/searchsummary/src/vespa/searchsummary/docsummary/resultpacker.cpp index 178e1a90667..c9642b80e56 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultpacker.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultpacker.cpp @@ -23,7 +23,7 @@ bool ResultPacker::CheckEntry(ResType type) if (_error) return false; - bool rc = (_cfgEntry != NULL && + bool rc = (_cfgEntry != nullptr && IsBinaryCompatible(_cfgEntry->_type, type)); if (rc) { @@ -43,7 +43,7 @@ ResultPacker::SetFormatError(ResType type) { _error = true; - if (_cfgEntry != NULL) { + if (_cfgEntry != nullptr) { LOG(error, "ResultPacker: format error: got '%s', expected '%s'", GetResTypeName(type), @@ -60,17 +60,15 @@ ResultPacker::ResultPacker(const ResultConfig *resConfig) : _buf(32768), _cbuf(32768), _resConfig(resConfig), - _resClass(NULL), + _resClass(nullptr), _entryIdx(0), - _cfgEntry(NULL), + _cfgEntry(nullptr), _error(true) { } -ResultPacker::~ResultPacker() -{ -} +ResultPacker::~ResultPacker() = default; void ResultPacker::InitPlain() @@ -82,16 +80,16 @@ bool ResultPacker::Init(uint32_t classID) { _buf.reset(); - _resClass = (_resConfig != NULL) ? - _resConfig->LookupResultClass(classID) : NULL; + _resClass = (_resConfig != nullptr) ? + _resConfig->LookupResultClass(classID) : nullptr; _entryIdx = 0; - if (_resClass != NULL) { + if (_resClass != nullptr) { uint32_t id = _resClass->GetClassID(); _buf.append(&id, sizeof(id)); _cfgEntry = _resClass->GetEntry(_entryIdx); _error = false; } else { - _cfgEntry = NULL; + _cfgEntry = nullptr; _error = true; LOG(error, "ResultPacker: resultclass %d does not exist", classID); @@ -104,22 +102,23 @@ ResultPacker::Init(uint32_t classID) bool ResultPacker::AddEmpty() { - if (!_error && _cfgEntry != NULL) { + if (!_error && _cfgEntry != nullptr) { switch (_cfgEntry->_type) { case RES_INT: return AddInteger(search::attribute::getUndefined()); case RES_SHORT: return AddShort(search::attribute::getUndefined()); + case RES_BOOL: return AddByte(0); case RES_BYTE: return AddByte(search::attribute::getUndefined()); case RES_FLOAT: return AddFloat(search::attribute::getUndefined()); case RES_DOUBLE: return AddDouble(search::attribute::getUndefined()); case RES_INT64: return AddInt64(search::attribute::getUndefined()); - case RES_STRING: return AddString(NULL, 0); - case RES_DATA: return AddData(NULL, 0); + case RES_STRING: return AddString(nullptr, 0); + case RES_DATA: return AddData(nullptr, 0); case RES_XMLSTRING: case RES_JSONSTRING: case RES_FEATUREDATA: - case RES_LONG_STRING: return AddLongString(NULL, 0); - case RES_TENSOR: return AddSerializedTensor(NULL, 0); - case RES_LONG_DATA: return AddLongData(NULL, 0); + case RES_LONG_STRING: return AddLongString(nullptr, 0); + case RES_TENSOR: return AddSerializedTensor(nullptr, 0); + case RES_LONG_DATA: return AddLongData(nullptr, 0); } } return AddInteger(0); // to provoke error condition @@ -271,7 +270,7 @@ ResultPacker::GetDocsumBlob(const char **buf, uint32_t *buflen) _resClass->GetNumEntries() - _entryIdx); } if (_error) { - *buf = NULL; + *buf = nullptr; *buflen = 0; return false; } else { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/urlresult.cpp b/searchsummary/src/vespa/searchsummary/docsummary/urlresult.cpp index 9cd5c58f971..646a167b5a8 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/urlresult.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/urlresult.cpp @@ -17,7 +17,7 @@ urlresult::urlresult(uint32_t partition, uint32_t docid, HitRank metric) { } -urlresult::~urlresult() { } +urlresult::~urlresult() = default; /*===============================================================*/ @@ -33,14 +33,12 @@ badurlresult::badurlresult(uint32_t partition, uint32_t docid, HitRank metric) { } -badurlresult::~badurlresult() { } +badurlresult::~badurlresult() = default; int -badurlresult::unpack(const char *buf, const size_t buflen) +badurlresult::unpack(const char *, const size_t ) { - (void) buf; - (void) buflen; LOG(warning, "badurlresult::unpack"); return 0; } @@ -60,10 +58,10 @@ GeneralResult::AllocEntries(uint32_t buflen, bool inplace) if (cnt > 0) { _entrycnt = cnt; _entries = (ResEntry *) malloc(needMem); - assert(_entries != NULL); + assert(_entries != nullptr); if (inplace) { - _buf = NULL; - _bufEnd = NULL; + _buf = nullptr; + _bufEnd = nullptr; } else { _buf = ((char *)_entries) + cnt * sizeof(ResEntry); _bufEnd = _buf + buflen + 1; @@ -71,9 +69,9 @@ GeneralResult::AllocEntries(uint32_t buflen, bool inplace) memset(_entries, 0, cnt * sizeof(ResEntry)); } else { _entrycnt = 0; - _entries = NULL; - _buf = NULL; - _bufEnd = NULL; + _entries = nullptr; + _buf = nullptr; + _bufEnd = nullptr; } } @@ -83,8 +81,8 @@ GeneralResult::FreeEntries() { uint32_t cnt = _entrycnt; - // (_buf == NULL) <=> (_inplace_unpack() || (cnt == 0)) - if (_buf != NULL) { + // (_buf == nullptr) <=> (_inplace_unpack() || (cnt == 0)) + if (_buf != nullptr) { for (uint32_t i = 0; i < cnt; i++) { if (ResultConfig::IsVariableSize(_entries[i]._type) && !InBuf(_entries[i]._stringval)) @@ -96,15 +94,13 @@ GeneralResult::FreeEntries() -GeneralResult::GeneralResult(const ResultClass *resClass, - uint32_t partition, uint32_t docid, - HitRank metric) +GeneralResult::GeneralResult(const ResultClass *resClass, uint32_t partition, uint32_t docid, HitRank metric) : urlresult(partition, docid, metric), _resClass(resClass), _entrycnt(0), - _entries(NULL), - _buf(NULL), - _bufEnd(NULL) + _entries(nullptr), + _buf(nullptr), + _bufEnd(nullptr) { } @@ -118,7 +114,7 @@ GeneralResult::~GeneralResult() ResEntry * GeneralResult::GetEntry(uint32_t idx) { - return (idx < _entrycnt) ? &_entries[idx] : NULL; + return (idx < _entrycnt) ? &_entries[idx] : nullptr; } @@ -128,7 +124,7 @@ GeneralResult::GetEntry(const char *name) int idx = _resClass->GetIndexFromName(name); return (idx >= 0 && (uint32_t)idx < _entrycnt) ? - &_entries[idx] : NULL; + &_entries[idx] : nullptr; } @@ -138,7 +134,7 @@ GeneralResult::GetEntryFromEnumValue(uint32_t value) int idx = _resClass->GetIndexFromEnumValue(value); return (idx >= 0 && (uint32_t)idx < _entrycnt) ? - &_entries[idx] : NULL; + &_entries[idx] : nullptr; } @@ -149,7 +145,7 @@ GeneralResult::unpack(const char *buf, const size_t buflen) const char *ebuf = buf + buflen; // Ref to first after buffer const char *p = buf; // current position in buffer - if (_entries != NULL) + if (_entries != nullptr) FreeEntries(); AllocEntries(buflen); @@ -195,6 +191,7 @@ GeneralResult::unpack(const char *buf, const size_t buflen) break; } + case RES_BOOL: case RES_BYTE: { uint8_t byteval; @@ -360,7 +357,7 @@ GeneralResult::unpack(const char *buf, const size_t buflen) if (realLen > 0) { _entries[i]._stringval = new char[realLen + 1]; } - if (_entries[i]._stringval != NULL) { + if (_entries[i]._stringval != nullptr) { uLongf rlen = realLen; if ((uncompress((Bytef *)_entries[i]._stringval, &rlen, (const Bytef *)(p + sizeof(realLen)), @@ -376,11 +373,11 @@ GeneralResult::unpack(const char *buf, const size_t buflen) LOG(warning, "Cannot uncompress docsum field %s; decompression error", entry->_bindname.c_str()); delete [] _entries[i]._stringval; - _entries[i]._stringval = NULL; + _entries[i]._stringval = nullptr; } } // insert empty field if decompress failed - if (_entries[i]._stringval == NULL) { + if (_entries[i]._stringval == nullptr) { _entries[i]._stringval = _buf + (p - buf); _entries[i]._stringval[0] = '\0'; _entries[i]._stringlen = 0; @@ -438,7 +435,7 @@ GeneralResult::unpack(const char *buf, const size_t buflen) if (realLen > 0) { _entries[i]._dataval = new char [realLen + 1]; } - if (_entries[i]._dataval != NULL) { + if (_entries[i]._dataval != nullptr) { uLongf rlen = realLen; if ((uncompress((Bytef *)_entries[i]._dataval, &rlen, (const Bytef *)(p + sizeof(realLen)), @@ -454,12 +451,12 @@ GeneralResult::unpack(const char *buf, const size_t buflen) LOG(warning, "Cannot uncompress docsum field %s; decompression error", entry->_bindname.c_str()); delete [] _entries[i]._dataval; - _entries[i]._dataval = NULL; + _entries[i]._dataval = nullptr; } } // insert empty field if decompress failed - if (_entries[i]._dataval == NULL) { + if (_entries[i]._dataval == nullptr) { _entries[i]._dataval = _buf + (p - buf); _entries[i]._dataval[0] = '\0'; _entries[i]._datalen = 0; @@ -512,9 +509,9 @@ GeneralResult::unpack(const char *buf, const size_t buflen) // clean up on failure FreeEntries(); _entrycnt = 0; - _entries = NULL; - _buf = NULL; - _bufEnd = NULL; + _entries = nullptr; + _buf = nullptr; + _bufEnd = nullptr; return -1; // FAIL } @@ -527,7 +524,7 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) const char *ebuf = buf + buflen; // Ref to first after buffer const char *p = buf; // current position in buffer - if (_entries != NULL) + if (_entries != nullptr) FreeEntries(); AllocEntries(buflen, true); @@ -547,8 +544,7 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) } else { - LOG(debug, - "GeneralResult::_inplace_unpack: p + sizeof(..._intval) > ebuf"); + LOG(debug, "GeneralResult::_inplace_unpack: p + sizeof(..._intval) > ebuf"); LOG(error, "Document summary too short, couldn't unpack"); rc = false; } @@ -567,14 +563,13 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) } else { - LOG(debug, - "GeneralResult::_inplace_unpack: p + sizeof(shortval) > ebuf"); + LOG(debug, "GeneralResult::_inplace_unpack: p + sizeof(shortval) > ebuf"); LOG(error, "Document summary too short, couldn't unpack"); rc = false; } break; } - + case RES_BOOL: case RES_BYTE: { uint8_t byteval; @@ -587,8 +582,7 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) } else { - LOG(debug, - "GeneralResult::_inplace_unpack: p + sizeof(byteval) > ebuf"); + LOG(debug, "GeneralResult::_inplace_unpack: p + sizeof(byteval) > ebuf"); LOG(error, "Document summary too short, couldn't unpack"); rc = false; } @@ -782,9 +776,7 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) } default: - LOG(warning, - "GeneralResult::_inplace_unpack: no such type:%d", - entry->_type); + LOG(warning, "GeneralResult::_inplace_unpack: no such type:%d", entry->_type); LOG(error, "Incorrect type in document summary, couldn't unpack"); rc = false; break; @@ -803,9 +795,9 @@ GeneralResult::_inplace_unpack(const char *buf, const size_t buflen) // clean up on failure FreeEntries(); _entrycnt = 0; - _entries = NULL; - _buf = NULL; - _bufEnd = NULL; + _entries = nullptr; + _buf = nullptr; + _bufEnd = nullptr; return false; // FAIL } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/urlresult.h b/searchsummary/src/vespa/searchsummary/docsummary/urlresult.h index 4d1fca0992d..31128c73ca2 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/urlresult.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/urlresult.h @@ -60,8 +60,7 @@ private: bool _inplace_unpack(const char *buf, const size_t buflen); public: - GeneralResult(const ResultClass *resClass, uint32_t partition, - uint32_t docid, HitRank metric); + GeneralResult(const ResultClass *resClass, uint32_t partition, uint32_t docid, HitRank metric); ~GeneralResult(); const ResultClass *GetClass() const { return _resClass; } @@ -73,7 +72,7 @@ public: bool inplaceUnpack(const DocsumStoreValue &value) { if (value.valid()) { - return _inplace_unpack(value.fieldsPt(), value.fieldsSz()); + return _inplace_unpack(value.fieldsPt(), value.fieldsSz()); } else { return false; } -- cgit v1.2.3