diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-11 19:42:29 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-11 19:42:29 +0000 |
commit | d96fe727ec06c9adb8a474464fcca23867373f86 (patch) | |
tree | 646b7acac517079efdf33cf23322af3611162317 /cc | |
parent | b8f948b58b06648c94fb746ae519a44a7e96ae15 (diff) | |
download | chromium_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.cc | 22 |
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 |