#include "ui/compositor/layer_tree_owner.h"
#include "base/memory/raw_ptr.h"
#include "ui/compositor/layer.h"
namespace ui {
namespace {
void DeepDeleteLayers(Layer* layer) {
std::vector<raw_ptr<Layer, VectorExperimental>> children = layer->children();
for (std::vector<raw_ptr<Layer, VectorExperimental>>::const_iterator it =
children.begin();
it != children.end(); ++it) {
Layer* child = *it;
DeepDeleteLayers(child);
}
delete layer;
}
}
LayerTreeOwner::LayerTreeOwner(std::unique_ptr<Layer> root)
: root_(root.release()) {}
LayerTreeOwner::~LayerTreeOwner() {
if (root_)
DeepDeleteLayers(root_);
}
}