Index: cc/tiled_layer_impl.cc |
diff --git a/cc/tiled_layer_impl.cc b/cc/tiled_layer_impl.cc |
index 1d224c544107f65c50291e9dc8a511b043b2c284..d4d7636afb9d97342af932b88de1c7cd64e3c53c 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(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); |
enne (OOO)
2012/12/04 00:57:02
I've added these checks in the past and never gott
|
+ CHECK(tileAt(i, j)); |
+ |
return addedTile; |
} |
@@ -200,11 +214,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) |
@@ -238,7 +256,11 @@ Region TiledLayerImpl::visibleContentOpaqueRegion() const |
void TiledLayerImpl::didLoseContext() |
{ |
+ safeToDeleteDrawableTile = true; |
+ // Temporary diagnostic check. |
+ CHECK(m_tiler); |
m_tiler->reset(); |
+ safeToDeleteDrawableTile = false; |
} |
const char* TiledLayerImpl::layerTypeAsString() const |