From d67762498f30449669bb961bfb0b0744d86f0957 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 26 Jul 2023 08:38:25 +0000 Subject: Add noexcept --- .../searchcore/proton/matching/querynodes.cpp | 42 +++++++++++----------- .../vespa/searchcore/proton/matching/querynodes.h | 12 +++---- .../searchcore/proton/matching/viewresolver.cpp | 3 +- 3 files changed, 26 insertions(+), 31 deletions(-) (limited to 'searchcore/src') diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp index 661da4273f8..06e86f26b2e 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.cpp @@ -19,22 +19,23 @@ using search::fef::MatchDataDetails; using search::fef::MatchDataLayout; using search::fef::TermFieldHandle; using search::query::Node; -using search::query::TemplateTermVisitor; -using search::query::Weight; -using search::queryeval::OrSearch; -using search::queryeval::SearchIterator; -using std::map; -using std::vector; using vespalib::string; using vespalib::Issue; namespace proton::matching { -ProtonTermData::ProtonTermData() = default; -ProtonTermData::ProtonTermData(const ProtonTermData &) = default; -ProtonTermData & ProtonTermData::operator = (const ProtonTermData &) = default; +ProtonTermData::ProtonTermData() noexcept = default; ProtonTermData::~ProtonTermData() = default; +namespace { + +bool +is_attribute(FieldType type) { + return (type == FieldType::ATTRIBUTE) || (type == FieldType::HIDDEN_ATTRIBUTE); +} + +} + void ProtonTermData::propagate_document_frequency(uint32_t matching_doc_count, uint32_t total_doc_count) { @@ -44,10 +45,8 @@ ProtonTermData::propagate_document_frequency(uint32_t matching_doc_count, uint32 } void -ProtonTermData::resolve(const ViewResolver &resolver, - const IIndexEnvironment &idxEnv, - const string &view, - bool forceFilter) +ProtonTermData::resolve(const ViewResolver &resolver, const IIndexEnvironment &idxEnv, + const string &view, bool forceFilter) { std::vector fields; resolver.resolve(((view == "") ? "default" : view), fields); @@ -55,12 +54,11 @@ ProtonTermData::resolve(const ViewResolver &resolver, _fields.reserve(fields.size()); for (size_t i = 0; i < fields.size(); ++i) { const FieldInfo *info = idxEnv.getFieldByName(fields[i]); - if (info != 0) { + if (info != nullptr) { _fields.emplace_back(fields[i], info->id()); - _fields.back().attribute_field = - (info->type() == FieldType::ATTRIBUTE) || - (info->type() == FieldType::HIDDEN_ATTRIBUTE); - _fields.back().filter_field = forceFilter ? true : info->isFilter(); + FieldEntry & field = _fields.back(); + field.attribute_field = is_attribute(info->type()); + field.filter_field = forceFilter || info->isFilter(); } else { LOG(debug, "ignoring undefined field: '%s'", fields[i].c_str()); } @@ -72,16 +70,16 @@ ProtonTermData::resolveFromChildren(const std::vector &subterms) { for (size_t i = 0; i < subterms.size(); ++i) { const ProtonTermData *child = termDataFromNode(*subterms[i]); - if (child == 0) { + if (child == nullptr) { Issue::report("child of equiv is not a term"); continue; } for (size_t j = 0; j < child->numFields(); ++j) { - FieldSpec subSpec = child->field(j).fieldSpec(); - if (lookupField(subSpec.getFieldId()) == 0) { + const FieldEntry & subSpec = child->field(j); + if (lookupField(subSpec.getFieldId()) == nullptr) { // this must happen before handles are reserved LOG_ASSERT(subSpec.getHandle() == search::fef::IllegalHandle); - _fields.emplace_back(subSpec.getName(), subSpec.getFieldId()); + _fields.emplace_back(subSpec.field_name, subSpec.getFieldId()); } } } diff --git a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h index 0e01884d504..cc09d4e9e7d 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/querynodes.h +++ b/searchcore/src/vespa/searchcore/proton/matching/querynodes.h @@ -30,13 +30,13 @@ public: bool attribute_field; bool filter_field; - FieldEntry(const vespalib::string &name, uint32_t fieldId) + FieldEntry(const vespalib::string &name, uint32_t fieldId) noexcept : SimpleTermFieldData(fieldId), field_name(name), attribute_field(false), filter_field(false) {} - [[nodiscard]] FieldSpec fieldSpec() const { + [[nodiscard]] FieldSpec fieldSpec() const noexcept { return {field_name, getFieldId(), getHandle(), filter_field}; } using SimpleTermFieldData::getHandle; @@ -55,11 +55,9 @@ protected: bool forceFilter); public: - ProtonTermData(); - ProtonTermData(const ProtonTermData &); - ProtonTermData & operator = (const ProtonTermData &); - ProtonTermData(ProtonTermData &&) = default; - ProtonTermData & operator = (ProtonTermData &&) = default; + ProtonTermData() noexcept; + ProtonTermData(const ProtonTermData &) = delete; + ProtonTermData & operator = (const ProtonTermData &) = delete; ~ProtonTermData() override; void resolveFromChildren(const std::vector &children); void allocateTerms(search::fef::MatchDataLayout &mdl); diff --git a/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp b/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp index 73b17c5e6ea..b3ccfd26569 100644 --- a/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp +++ b/searchcore/src/vespa/searchcore/proton/matching/viewresolver.cpp @@ -31,8 +31,7 @@ ViewResolver::createFromSchema(const search::index::Schema &schema) { ViewResolver resolver; for (uint32_t i = 0; i < schema.getNumFieldSets(); ++i) { - const search::index::Schema::FieldSet - &f = schema.getFieldSet(i); + const search::index::Schema::FieldSet &f = schema.getFieldSet(i); const vespalib::string &view = f.getName(); const std::vector &fields = f.getFields(); for (uint32_t j = 0; j < fields.size(); ++j) { -- cgit v1.2.3