Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/map
diff options
context:
space:
mode:
authorr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-12-07 10:28:38 +0300
committerr.kuznetsov <r.kuznetsov@corp.mail.ru>2016-12-07 12:47:26 +0300
commit17d3a0abb9e424315f50f676c61b7218236e6a78 (patch)
tree8d799ab298ec17a1900d091f0662e8102d393e3e /map
parentfce37cc9a0483aed41aaa15ad5b20ee64bd4c3e0 (diff)
Fixed freeze on traffic turning on
Diffstat (limited to 'map')
-rw-r--r--map/traffic_manager.cpp4
-rw-r--r--map/traffic_manager.hpp1
2 files changed, 5 insertions, 0 deletions
diff --git a/map/traffic_manager.cpp b/map/traffic_manager.cpp
index 797a1889b2..a3ec600e87 100644
--- a/map/traffic_manager.cpp
+++ b/map/traffic_manager.cpp
@@ -101,6 +101,7 @@ void TrafficManager::SetEnabled(bool enabled)
void TrafficManager::Clear()
{
m_mwmCache.clear();
+ m_lastMwmsByRect.clear();
m_activeMwms.clear();
m_requestedMwms.clear();
}
@@ -147,6 +148,9 @@ void TrafficManager::UpdateViewport(ScreenBase const & screen)
// Request traffic.
auto mwms = m_getMwmsByRectFn(screen.ClipRect());
+ if (m_lastMwmsByRect == mwms)
+ return;
+ m_lastMwmsByRect = mwms;
{
lock_guard<mutex> lock(m_mutex);
diff --git a/map/traffic_manager.hpp b/map/traffic_manager.hpp
index d2f208a356..67dcc7d323 100644
--- a/map/traffic_manager.hpp
+++ b/map/traffic_manager.hpp
@@ -133,6 +133,7 @@ private:
bool m_isRunning;
condition_variable m_condition;
+ vector<MwmSet::MwmId> m_lastMwmsByRect;
set<MwmSet::MwmId> m_activeMwms;
vector<MwmSet::MwmId> m_requestedMwms;