diff options
Diffstat (limited to 'cc/surfaces/surface_factory.cc')
-rw-r--r-- | cc/surfaces/surface_factory.cc | 11 |
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) { |