diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/renderer/renderer.cpp | 6 | ||||
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 10 |
2 files changed, 7 insertions, 9 deletions
diff --git a/src/mbgl/renderer/renderer.cpp b/src/mbgl/renderer/renderer.cpp index 9f4b897d6e..7e8c7e4e4c 100644 --- a/src/mbgl/renderer/renderer.cpp +++ b/src/mbgl/renderer/renderer.cpp @@ -15,7 +15,10 @@ Renderer::Renderer(RendererBackend& backend, contextMode_, std::move(programCacheDir_))) { } -Renderer::~Renderer() = default; +Renderer::~Renderer() { + BackendScope guard { impl->backend }; + impl.reset(); +} void Renderer::setObserver(RendererObserver* observer) { impl->setObserver(observer); @@ -72,6 +75,7 @@ void Renderer::dumpDebugLogs() { } void Renderer::onLowMemory() { + BackendScope guard { impl->backend }; impl->onLowMemory(); } diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index 18b0ab08f5..38b296b389 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -64,13 +64,7 @@ Renderer::Impl::Impl(RendererBackend& backend_, } Renderer::Impl::~Impl() { - BackendScope guard { backend }; - glyphManager.reset(); - imageManager.reset(); - lineAtlas.reset(); - renderSources.reset(); - renderLayers.reset(); - staticData.reset(); + assert(BackendScope::exists()); }; void Renderer::Impl::setObserver(RendererObserver* observer_) { @@ -670,7 +664,7 @@ std::vector<Feature> Renderer::Impl::querySourceFeatures(const std::string& sour } void Renderer::Impl::onLowMemory() { - BackendScope guard { backend }; + assert(BackendScope::exists()); backend.getContext().performCleanup(); for (const auto& entry : renderSources) { entry.second->onLowMemory(); |