diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2016-12-06 18:27:36 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2016-12-06 18:27:36 +0000 |
commit | 9f06e95104d9dbe7765d04bf903456c8f9ad15cb (patch) | |
tree | cfa0e2646deb6c69828ebd979f10e193d45dd9d7 | |
parent | 94e5ce4291236d97b3dbcc45591efcd977902b49 (diff) |
Forward bind_match_data() to underlying feature executors when overriding
features.
Don't inline virtual methods.
4 files changed, 16 insertions, 4 deletions
diff --git a/searchlib/src/vespa/searchlib/fef/featureexecutor.cpp b/searchlib/src/vespa/searchlib/fef/featureexecutor.cpp index b28bec39b19..5419841a94a 100644 --- a/searchlib/src/vespa/searchlib/fef/featureexecutor.cpp +++ b/searchlib/src/vespa/searchlib/fef/featureexecutor.cpp @@ -18,5 +18,12 @@ FeatureExecutor::isPure() return false; } +void +FeatureExecutor::bind_match_data(MatchData &md) +{ + _inputs.bind(md); + _outputs.bind(md); +} + } // namespace fef } // namespace search diff --git a/searchlib/src/vespa/searchlib/fef/featureexecutor.h b/searchlib/src/vespa/searchlib/fef/featureexecutor.h index 62e13530ace..433b314278c 100644 --- a/searchlib/src/vespa/searchlib/fef/featureexecutor.h +++ b/searchlib/src/vespa/searchlib/fef/featureexecutor.h @@ -121,10 +121,7 @@ public: // Bind inputs and outputs directly to the underlying match data // to be able to hide the fact that input and output values are // stored in a match data object from the executor itself. - void bind_match_data(MatchData &md) { - _inputs.bind(md); - _outputs.bind(md); - } + virtual void bind_match_data(MatchData &md); /** * Add an input to this feature executor. All inputs must be added diff --git a/searchlib/src/vespa/searchlib/fef/featureoverrider.cpp b/searchlib/src/vespa/searchlib/fef/featureoverrider.cpp index be772b6b8e2..dac39f862f3 100644 --- a/searchlib/src/vespa/searchlib/fef/featureoverrider.cpp +++ b/searchlib/src/vespa/searchlib/fef/featureoverrider.cpp @@ -50,5 +50,12 @@ FeatureOverrider::execute(MatchData &data) } } +void +FeatureOverrider::bind_match_data(MatchData &md) +{ + FeatureExecutor::bind_match_data(md); + _executor.bind_match_data(md); +} + } // namespace fef } // namespace search diff --git a/searchlib/src/vespa/searchlib/fef/featureoverrider.h b/searchlib/src/vespa/searchlib/fef/featureoverrider.h index d54454df299..ee45d178af7 100644 --- a/searchlib/src/vespa/searchlib/fef/featureoverrider.h +++ b/searchlib/src/vespa/searchlib/fef/featureoverrider.h @@ -39,6 +39,7 @@ public: void outputs_done() override; bool isPure() override; void execute(MatchData &data) override; + virtual void bind_match_data(MatchData &md) override; }; } // namespace fef |