summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java b/container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java
index 7da5441129c..3ec9a3c41b8 100644
--- a/container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java
+++ b/container-search/src/main/java/com/yahoo/search/query/profile/ChainedMap.java
@@ -23,7 +23,17 @@ class ChainedMap<K, V> implements Map<K, V> {
@Override
public int size() {
- return keySet().size();
+ return (primary.size() >= secondary.size())
+ ? countUnique(primary, secondary)
+ : countUnique(secondary, primary);
+ }
+
+ private int countUnique(Map<K, V> large, Map<K,V> small) {
+ int size = large.size();
+ for (K key : small.keySet()) {
+ if ( ! large.containsKey(key)) size++;
+ }
+ return size;
}
@Override