summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-07-24 16:14:56 +0200
committerGitHub <noreply@github.com>2018-07-24 16:14:56 +0200
commit7835ad24267dbae0579a30c2a403a60b23489e86 (patch)
tree6e95bad13af74a1073154e58c6804a205d90d62c
parent79ba33f274952f65726f628a11947dd5d6d4fc93 (diff)
parent523bc6088fcf722d28674791930538adb729274f (diff)
Merge pull request #6458 from vespa-engine/balder/no-dynamic_cast-in-inner-loop
Balder/no dynamic cast in inner loop
-rw-r--r--searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.cpp16
-rw-r--r--searchlib/src/vespa/searchlib/features/internal_max_reduce_prod_join_feature.h4
-rw-r--r--searchlib/src/vespa/searchlib/features/rankingexpressionfeature.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/fef/featureexecutor.h8
-rw-r--r--searchlib/src/vespa/searchlib/fef/indexproperties.h13
-rw-r--r--searchlib/src/vespa/searchlib/fef/number_or_object.h6
-rw-r--r--searchlib/src/vespa/searchlib/fef/ranksetup.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/fef/ranksetup.h6
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/rankfeaturesdfw.cpp12
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) {