Index: net/http/http_server_properties_impl.cc |
diff --git a/net/http/http_server_properties_impl.cc b/net/http/http_server_properties_impl.cc |
index 77968ff7d6105a653b6f7746fee0713fe7e9a7ad..27aaaa6b4e3c53bef84dcbf257c8e6af385ccd05 100644 |
--- a/net/http/http_server_properties_impl.cc |
+++ b/net/http/http_server_properties_impl.cc |
@@ -108,10 +108,25 @@ void HttpServerPropertiesImpl::InitializeSupportsQuic( |
void HttpServerPropertiesImpl::InitializeServerNetworkStats( |
ServerNetworkStatsMap* server_network_stats_map) { |
+ // Add the entries from persisted data. |
+ ServerNetworkStatsMap new_server_network_stats_map( |
+ ServerNetworkStatsMap::NO_AUTO_EVICT); |
for (ServerNetworkStatsMap::reverse_iterator it = |
server_network_stats_map->rbegin(); |
it != server_network_stats_map->rend(); ++it) { |
- server_network_stats_map_.Put(it->first, it->second); |
+ new_server_network_stats_map.Put(it->first, it->second); |
+ } |
+ |
+ server_network_stats_map_.Swap(new_server_network_stats_map); |
+ |
+ // Add the entries from the memory cache. |
+ for (ServerNetworkStatsMap::reverse_iterator it = |
+ new_server_network_stats_map.rbegin(); |
+ it != new_server_network_stats_map.rend(); ++it) { |
+ if (server_network_stats_map_.Get(it->first) == |
+ server_network_stats_map_.end()) { |
+ server_network_stats_map_.Put(it->first, it->second); |
+ } |
} |
} |