summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/surface_factory.cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc/surfaces/surface_factory.cc')
-rw-r--r--cc/surfaces/surface_factory.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/cc/surfaces/surface_factory.cc b/cc/surfaces/surface_factory.cc
index dcf1130..88c5455 100644
--- a/cc/surfaces/surface_factory.cc
+++ b/cc/surfaces/surface_factory.cc
@@ -17,6 +17,17 @@ SurfaceFactory::SurfaceFactory(SurfaceManager* manager,
}
SurfaceFactory::~SurfaceFactory() {
+ if (!surface_map_.empty()) {
+ LOG(ERROR) << "SurfaceFactory has " << surface_map_.size()
+ << " entries in map on destruction.";
+ }
+ DestroyAll();
+}
+
+void SurfaceFactory::DestroyAll() {
+ for (auto& surface : surface_map_)
+ manager_->DeregisterSurface(surface.first);
+ surface_map_.clear();
}
void SurfaceFactory::Create(SurfaceId surface_id, const gfx::Size& size) {