aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2016-12-06 18:27:36 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2016-12-06 18:27:36 +0000
commit9f06e95104d9dbe7765d04bf903456c8f9ad15cb (patch)
treecfa0e2646deb6c69828ebd979f10e193d45dd9d7
parent94e5ce4291236d97b3dbcc45591efcd977902b49 (diff)
Forward bind_match_data() to underlying feature executors when overriding
features. Don't inline virtual methods.
-rw-r--r--searchlib/src/vespa/searchlib/fef/featureexecutor.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/fef/featureexecutor.h5
-rw-r--r--searchlib/src/vespa/searchlib/fef/featureoverrider.cpp7
-rw-r--r--searchlib/src/vespa/searchlib/fef/featureoverrider.h1
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