summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-09-14 19:30:13 +0200
committerGitHub <noreply@github.com>2021-09-14 19:30:13 +0200
commit4a1ab13c48130dc4917e6075b5734f57d15dbcda (patch)
tree9791d07bd05c9af3ffc38d1199f402125f879969 /searchlib
parent6a7a6e1987c0de4ce9d2375473414e573d8e985f (diff)
parent08f7945e890d026f6caa6f5f74c4f24b248029b4 (diff)
Merge pull request #19123 from vespa-engine/balder/cache-potentially-large-and-expensive-list
Cache list that is potentially hard to compute.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/abi-spec.json1
-rw-r--r--searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java8
2 files changed, 7 insertions, 2 deletions
diff --git a/searchlib/abi-spec.json b/searchlib/abi-spec.json
index 65151dd6ff0..e8e3a3cb133 100644
--- a/searchlib/abi-spec.json
+++ b/searchlib/abi-spec.json
@@ -1424,6 +1424,7 @@
"public void <init>(java.util.Collection, java.util.Map)",
"public void <init>(java.util.Map)",
"public void <init>(java.util.Map, java.util.Map)",
+ "protected void <init>(com.google.common.collect.ImmutableMap, java.util.Map)",
"public com.yahoo.searchlib.rankingexpression.ExpressionFunction getFunction(java.lang.String)",
"protected com.google.common.collect.ImmutableMap functions()",
"public java.lang.String getBinding(java.lang.String)",
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
index 6717bec0258..506884d15b4 100644
--- a/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
+++ b/searchlib/src/main/java/com/yahoo/searchlib/rankingexpression/rule/FunctionReferenceContext.java
@@ -38,12 +38,16 @@ public class FunctionReferenceContext {
/** Create a context for a single serialization task */
public FunctionReferenceContext(Map<String, ExpressionFunction> functions) {
- this(functions.values());
+ this(functions, null);
}
/** Create a context for a single serialization task */
public FunctionReferenceContext(Map<String, ExpressionFunction> functions, Map<String, String> bindings) {
- this.functions = ImmutableMap.copyOf(functions);
+ this(ImmutableMap.copyOf(functions), bindings);
+ }
+
+ protected FunctionReferenceContext(ImmutableMap<String, ExpressionFunction> functions, Map<String, String> bindings) {
+ this.functions = functions;
if (bindings != null)
this.bindings.putAll(bindings);
}