summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mbgl/renderer/renderer.cpp6
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp10
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();