diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-07-24 16:14:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-24 16:14:56 +0200 |
commit | 7835ad24267dbae0579a30c2a403a60b23489e86 (patch) | |
tree | 6e95bad13af74a1073154e58c6804a205d90d62c | |
parent | 79ba33f274952f65726f628a11947dd5d6d4fc93 (diff) | |
parent | 523bc6088fcf722d28674791930538adb729274f (diff) |
Merge pull request #6458 from vespa-engine/balder/no-dynamic_cast-in-inner-loop
Balder/no dynamic cast in inner loop
9 files changed, 26 insertions, 53 deletions
diff --git a/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.cpp b/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.cpp index 90451c01294..9d383e5a03a 100644 --- a/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.cpp +++ b/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.cpp @@ -3,16 +3,16 @@ #include "internal_max_reduce_prod_join_feature.h" #include "valuefeature.h" #include "weighted_set_parser.h" +#include "dotproductfeature.h" -#include <vespa/log/log.h> #include <vespa/searchlib/attribute/attribute.h> #include <vespa/searchlib/attribute/imported_attribute_vector_read_guard.h> #include <vespa/searchlib/attribute/multinumericattribute.h> -#include <vespa/searchlib/features/dotproductfeature.h> #include <vespa/searchlib/fef/properties.h> #include <vespa/searchlib/fef/featureexecutor.h> #include <vespa/searchcommon/common/datatype.h> +#include <vespa/log/log.h> LOG_SETUP(".features.internalmaxreduceprodjoin"); using namespace search::attribute; @@ -20,8 +20,7 @@ using namespace search::fef; using search::features::dotproduct::wset::IntegerVector; -namespace search { -namespace features { +namespace search::features { /** * Executor used when array can be accessed directly @@ -38,8 +37,7 @@ public: }; template <typename BaseType> -RawExecutor<BaseType>::RawExecutor(const IAttributeVector *attribute, - const IntegerVector &queryVector) : +RawExecutor<BaseType>::RawExecutor(const IAttributeVector *attribute, const IntegerVector &queryVector) : FeatureExecutor(), _attribute(attribute), _queryVector(queryVector) @@ -69,7 +67,7 @@ RawExecutor<BaseType>::execute(uint32_t docId) { using A = IntegerAttributeTemplate<BaseType>; const multivalue::Value<BaseType> *values(nullptr); - const A *iattr = dynamic_cast<const A *>(_attribute); + const A *iattr = static_cast<const A *>(_attribute); size_t count = iattr->getRawValues(docId, values); outputs().set_number(0, maxProduct(values, count, _queryVector)); } @@ -215,8 +213,4 @@ InternalMaxReduceProdJoinBlueprint::createExecutor(const IQueryEnvironment &env, return stash.create<SingleZeroValueExecutor>(); } - } -} - - diff --git a/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.h b/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.h index 2c576b58345..65dd0ac2082 100644 --- a/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.h +++ b/searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.h @@ -4,8 +4,7 @@ #include <vespa/searchlib/fef/blueprint.h> -namespace search { -namespace features { +namespace search::features { /** * Feature for the specific replacement of the expression: @@ -41,4 +40,3 @@ public: }; } -} diff --git a/searchlib/src/vespa/searchlib/features/rankingexpressionfeature.cpp b/searchlib/src/vespa/searchlib/features/rankingexpressionfeature.cpp index 4640170e6b9..c6eeafd772f 100644 --- a/searchlib/src/vespa/searchlib/features/rankingexpressionfeature.cpp +++ b/searchlib/src/vespa/searchlib/features/rankingexpressionfeature.cpp @@ -26,8 +26,7 @@ using search::fef::FeatureType; using vespalib::ArrayRef; using vespalib::ConstArrayRef; -namespace search { -namespace features { +namespace search::features { namespace { @@ -305,5 +304,4 @@ RankingExpressionBlueprint::createExecutor(const fef::IQueryEnvironment &env, ve //----------------------------------------------------------------------------- -} // features -} // search +} diff --git a/searchlib/src/vespa/searchlib/fef/featureexecutor.h b/searchlib/src/vespa/searchlib/fef/featureexecutor.h index c8219fada3b..dfc46230e18 100644 --- a/searchlib/src/vespa/searchlib/fef/featureexecutor.h +++ b/searchlib/src/vespa/searchlib/fef/featureexecutor.h @@ -4,12 +4,10 @@ #include "handle.h" #include "matchdata.h" -#include <memory> #include "number_or_object.h" #include <vespa/vespalib/util/arrayref.h> -namespace search { -namespace fef { +namespace search::fef { class FeatureExecutor; @@ -181,8 +179,6 @@ vespalib::eval::Value::CREF FeatureExecutor::Inputs::get_object(size_t idx) cons return _inputs[idx].as_object(_docid); } -} // namespace fef -} // namespace search - +} // LocalWords: param diff --git a/searchlib/src/vespa/searchlib/fef/indexproperties.h b/searchlib/src/vespa/searchlib/fef/indexproperties.h index a2a227b448c..38e0eca7548 100644 --- a/searchlib/src/vespa/searchlib/fef/indexproperties.h +++ b/searchlib/src/vespa/searchlib/fef/indexproperties.h @@ -6,10 +6,7 @@ #include <vector> #include <vespa/searchlib/common/feature.h> -namespace search { -namespace fef { - -class Properties; +namespace search::fef { class Properties; } /** * This namespace is a placeholder for several structs, each representing @@ -19,7 +16,7 @@ class Properties; * instance one should use the property names defined here to perform the lookup. * If the property is not present the default value is used. **/ -namespace indexproperties { +namespace search::fef::indexproperties { namespace eval { @@ -357,8 +354,4 @@ struct QueryFeature { } // namespace type - -} // namespace indexproperties -} // namespace fef -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/fef/number_or_object.h b/searchlib/src/vespa/searchlib/fef/number_or_object.h index 59de864961e..259a1622516 100644 --- a/searchlib/src/vespa/searchlib/fef/number_or_object.h +++ b/searchlib/src/vespa/searchlib/fef/number_or_object.h @@ -5,8 +5,7 @@ #include <vespa/searchlib/common/feature.h> #include <vespa/eval/eval/value.h> -namespace search { -namespace fef { +namespace search::fef { /** * Storage cell for values passed between feature executors in the @@ -21,5 +20,4 @@ union NumberOrObject { ~NumberOrObject() {} }; -} // namespace fef -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/fef/ranksetup.cpp b/searchlib/src/vespa/searchlib/fef/ranksetup.cpp index 5a16b1b6ba8..eea9188632d 100644 --- a/searchlib/src/vespa/searchlib/fef/ranksetup.cpp +++ b/searchlib/src/vespa/searchlib/fef/ranksetup.cpp @@ -20,8 +20,7 @@ public: }; } // namespace <unnamed> -namespace search { -namespace fef { +namespace search::fef { using namespace indexproperties; @@ -61,7 +60,7 @@ RankSetup::RankSetup(const BlueprintFactory &factory, const IIndexEnvironment &i _softTimeoutTailCost(0.1) { } -RankSetup::~RankSetup() { } +RankSetup::~RankSetup() = default; void RankSetup::configure() @@ -190,5 +189,4 @@ RankSetup::prepareSharedState(const IQueryEnvironment &queryEnv, IObjectStore &o } } -} // namespace fef -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/fef/ranksetup.h b/searchlib/src/vespa/searchlib/fef/ranksetup.h index cccb3d961d5..ef869c87740 100644 --- a/searchlib/src/vespa/searchlib/fef/ranksetup.h +++ b/searchlib/src/vespa/searchlib/fef/ranksetup.h @@ -8,8 +8,7 @@ #include "blueprintresolver.h" #include "rank_program.h" -namespace search { -namespace fef { +namespace search::fef { /** * A rank setup contains information about how initial and final rank @@ -403,5 +402,4 @@ public: void prepareSharedState(const IQueryEnvironment & queryEnv, IObjectStore & objectStore) const; }; -} // namespace fef -} // namespace search +} diff --git a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp index fdc38d8d6f9..7097012c5ea 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp @@ -8,10 +8,10 @@ namespace search::docsummary { RankFeaturesDFW::RankFeaturesDFW() : - _env(NULL) + _env(nullptr) { } -RankFeaturesDFW::~RankFeaturesDFW() { } +RankFeaturesDFW::~RankFeaturesDFW() = default; void RankFeaturesDFW::init(IDocsumEnvironment * env) @@ -23,15 +23,15 @@ void RankFeaturesDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState *state, ResType type, vespalib::slime::Inserter &target) { - if (state->_rankFeatures.get() == NULL) { + if (state->_rankFeatures.get() == nullptr) { state->_callback.FillRankFeatures(state, _env); - if (state->_rankFeatures.get() == NULL) { // still no rank features to write + if (state->_rankFeatures.get() == nullptr) { // still no rank features to write return; } } const FeatureSet::StringVector & names = state->_rankFeatures->getNames(); const feature_t * values = state->_rankFeatures->getFeaturesByDocId(docid); - if (type == RES_FEATUREDATA && values != NULL) { + if (type == RES_FEATUREDATA && values != nullptr) { vespalib::slime::Cursor& obj = target.insertObject(); for (uint32_t i = 0; i < names.size(); ++i) { vespalib::Memory name(names[i].c_str(), names[i].size()); @@ -40,7 +40,7 @@ RankFeaturesDFW::insertField(uint32_t docid, GeneralResult *, GetDocsumsState *s return; } vespalib::JSONStringer & json(state->_jsonStringer); - if (values != NULL) { + if (values != nullptr) { json.clear(); json.beginObject(); for (uint32_t i = 0; i < names.size(); ++i) { |