diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2017-08-12 13:13:45 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-08-24 11:42:52 -0700 |
commit | 6d69c0822e7144bcfba0b86aaaac758788180194 (patch) | |
tree | c1ae66a27750867ce3c1c072d94427777945fcc6 | |
parent | 31c3176c846a27699d001ef1b4ddcb69fdee17c1 (diff) | |
download | qtlocation-mapboxgl-6d69c0822e7144bcfba0b86aaaac758788180194.tar.gz |
[core] Create BackendScopes in Renderer, assert in Impl
This avoids a long series of reset() calls in the Impl.
-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(); |