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
diff options
context:
space:
mode:
authorRoman Kuznetsov <r.kuznetsow@gmail.com>2017-05-29 17:46:18 +0300
committerGitHub <noreply@github.com>2017-05-29 17:46:18 +0300
commit2192d85a55c6e6783052064f2c272092ff874cad (patch)
treef1df47f73db2dd7398e6606ca938332f53177f04
parentacb8a4a06a39ecc5ffd9210991c89e8e57f16f3c (diff)
parenta1bbe2b49cfa68fa3c03f3f70ccf7433943020e0 (diff)
Merge pull request #6146 from darina/overlay-tree-clearingbeta-834
Clear overlay tree on context destruction.
-rw-r--r--drape/overlay_tree.cpp11
-rw-r--r--drape/overlay_tree.hpp1
-rwxr-xr-xdrape_frontend/frontend_renderer.cpp1
3 files changed, 12 insertions, 1 deletions
diff --git a/drape/overlay_tree.cpp b/drape/overlay_tree.cpp
index 20935f5a0d..6f4de7928c 100644
--- a/drape/overlay_tree.cpp
+++ b/drape/overlay_tree.cpp
@@ -87,6 +87,15 @@ OverlayTree::OverlayTree()
m_handles[i].reserve(kAverageHandlesCount[i]);
}
+void OverlayTree::Clear()
+{
+ m_frameCounter = kInvalidFrame;
+ TBase::Clear();
+ m_handlesCache.clear();
+ for (auto & handles : m_handles)
+ handles.clear();
+}
+
bool OverlayTree::Frame()
{
if (IsNeedUpdate())
@@ -107,7 +116,7 @@ bool OverlayTree::IsNeedUpdate() const
void OverlayTree::StartOverlayPlacing(ScreenBase const & screen)
{
ASSERT(IsNeedUpdate(), ());
- Clear();
+ TBase::Clear();
m_handlesCache.clear();
m_traits.m_modelView = screen;
m_displacementInfo.clear();
diff --git a/drape/overlay_tree.hpp b/drape/overlay_tree.hpp
index 02ec201506..209774beae 100644
--- a/drape/overlay_tree.hpp
+++ b/drape/overlay_tree.hpp
@@ -48,6 +48,7 @@ public:
OverlayTree();
+ void Clear();
bool Frame();
bool IsNeedUpdate() const;
diff --git a/drape_frontend/frontend_renderer.cpp b/drape_frontend/frontend_renderer.cpp
index da35e57cf3..1f4292f706 100755
--- a/drape_frontend/frontend_renderer.cpp
+++ b/drape_frontend/frontend_renderer.cpp
@@ -1668,6 +1668,7 @@ void FrontendRenderer::OnContextDestroy()
m_selectObjectMessage.reset();
m_overlayTree->SetSelectedFeature(FeatureID());
+ m_overlayTree->Clear();
m_userMarkRenderGroups.clear();
m_guiRenderer.reset();