From 079ddfc8e4a107d0801e84c0fd2f6118e1a501fc Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Sat, 12 Aug 2017 13:13:45 -0700 Subject: [core] Create BackendScopes in Renderer, assert in Impl This avoids a long series of reset() calls in the Impl. --- src/mbgl/renderer/renderer.cpp | 6 +++++- src/mbgl/renderer/renderer_impl.cpp | 10 ++-------- 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'src/mbgl') 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 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(); -- cgit v1.2.1