summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-11 19:42:29 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-12-11 19:42:29 +0000
commitd96fe727ec06c9adb8a474464fcca23867373f86 (patch)
tree646b7acac517079efdf33cf23322af3611162317 /cc
parentb8f948b58b06648c94fb746ae519a44a7e96ae15 (diff)
downloadchromium_src-d96fe727ec06c9adb8a474464fcca23867373f86.zip
chromium_src-d96fe727ec06c9adb8a474464fcca23867373f86.tar.gz
chromium_src-d96fe727ec06c9adb8a474464fcca23867373f86.tar.bz2
cc: Temporary diagnostics.
BUG=160485 Review URL: https://chromiumcodereview.appspot.com/11280274 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172375 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/tiled_layer_impl.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/cc/tiled_layer_impl.cc b/cc/tiled_layer_impl.cc
index 5b4e68c..5998915a 100644
--- a/cc/tiled_layer_impl.cc
+++ b/cc/tiled_layer_impl.cc
@@ -23,10 +23,15 @@ using namespace std;
namespace cc {
+// Temporary diagnostic.
+static bool safeToDeleteDrawableTile = false;
+
class DrawableTile : public LayerTilingData::Tile {
public:
static scoped_ptr<DrawableTile> create() { return make_scoped_ptr(new DrawableTile()); }
+ virtual ~DrawableTile() { CHECK(safeToDeleteDrawableTile); }
+
ResourceProvider::ResourceId resourceId() const { return m_resourceId; }
void setResourceId(ResourceProvider::ResourceId resourceId) { m_resourceId = resourceId; }
bool contentsSwizzled() { return m_contentsSwizzled; }
@@ -51,6 +56,10 @@ TiledLayerImpl::TiledLayerImpl(LayerTreeHostImpl* hostImpl, int id)
TiledLayerImpl::~TiledLayerImpl()
{
+ safeToDeleteDrawableTile = true;
+ if (m_tiler)
+ m_tiler->reset();
+ safeToDeleteDrawableTile = false;
}
ResourceProvider::ResourceId TiledLayerImpl::contentsResourceId() const
@@ -92,6 +101,11 @@ DrawableTile* TiledLayerImpl::createTile(int i, int j)
scoped_ptr<DrawableTile> tile(DrawableTile::create());
DrawableTile* addedTile = tile.get();
m_tiler->addTile(tile.PassAs<LayerTilingData::Tile>(), i, j);
+
+ // Temporary diagnostic checks.
+ CHECK(addedTile);
+ CHECK(tileAt(i, j));
+
return addedTile;
}
@@ -202,11 +216,15 @@ void TiledLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQuad
void TiledLayerImpl::setTilingData(const LayerTilingData& tiler)
{
+ safeToDeleteDrawableTile = true;
+
if (m_tiler)
m_tiler->reset();
else
m_tiler = LayerTilingData::create(tiler.tileSize(), tiler.hasBorderTexels() ? LayerTilingData::HasBorderTexels : LayerTilingData::NoBorderTexels);
*m_tiler = tiler;
+
+ safeToDeleteDrawableTile = false;
}
void TiledLayerImpl::pushTileProperties(int i, int j, ResourceProvider::ResourceId resourceId, const gfx::Rect& opaqueRect, bool contentsSwizzled)
@@ -240,7 +258,11 @@ Region TiledLayerImpl::visibleContentOpaqueRegion() const
void TiledLayerImpl::didLoseOutputSurface()
{
+ safeToDeleteDrawableTile = true;
+ // Temporary diagnostic check.
+ CHECK(m_tiler);
m_tiler->reset();
+ safeToDeleteDrawableTile = false;
}
const char* TiledLayerImpl::layerTypeAsString() const