From be1e163758bc5f4149b27c5696af8be87d13d26e Mon Sep 17 00:00:00 2001 From: "r.kuznetsov" Date: Tue, 5 Apr 2016 20:39:54 +0300 Subject: [PATCH] Fixed crash on waking up on migration in background --- map/framework.cpp | 8 ++++++-- map/framework.hpp | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index 642c43f5fa..37880ef933 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -269,7 +269,8 @@ void Framework::Migrate(bool keepDownloaded) // framework (i.e. m_infoGetter) which are reinitialized during migration process. // If we do not suspend drape, it tries to access framework fields (i.e. m_infoGetter) which are null // while migration is performed. - SetRenderingEnabled(false); + if (m_drapeEngine && m_isRenderingEnabled) + m_drapeEngine->SetRenderingEnabled(false); m_searchEngine.reset(); m_infoGetter.reset(); TCountriesVec existedCountries; @@ -280,7 +281,8 @@ void Framework::Migrate(bool keepDownloaded) InitCountryInfoGetter(); InitSearchEngine(); RegisterAllMaps(); - SetRenderingEnabled(true); + if (m_drapeEngine && m_isRenderingEnabled) + m_drapeEngine->SetRenderingEnabled(true); InvalidateRect(MercatorBounds::FullRect()); } @@ -289,6 +291,7 @@ Framework::Framework() , m_bmManager(*this) , m_fixedSearchResults(0) , m_lastReportedCountry(kInvalidCountryId) + , m_isRenderingEnabled(true) { // Restore map style before classificator loading int mapStyle; @@ -1529,6 +1532,7 @@ void Framework::DestroyDrapeEngine() void Framework::SetRenderingEnabled(bool enable) { + m_isRenderingEnabled = enable; if (m_drapeEngine) m_drapeEngine->SetRenderingEnabled(enable); } diff --git a/map/framework.hpp b/map/framework.hpp index 2b7b7b3447..dcfb28e6c7 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -133,6 +133,8 @@ protected: BookmarkManager m_bmManager; + bool m_isRenderingEnabled; + /// This function will be called by m_storage when latest local files /// is downloaded. void OnCountryFileDownloaded(storage::TCountryId const & countryId, storage::Storage::TLocalFilePtr const localFile);