Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(64)

Unified Diff: cc/CCOcclusionTrackerTest.cpp

Issue 11076013: [cc] Store CCLayerImpls as scoped_ptrs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/CCOcclusionTrackerTest.cpp
diff --git a/cc/CCOcclusionTrackerTest.cpp b/cc/CCOcclusionTrackerTest.cpp
index 440b6b877a74dd57403e1cb3d7c155b8ade4fe33..cea8665845ed22e0be356b7720ccce778aa7c6c6 100644
--- a/cc/CCOcclusionTrackerTest.cpp
+++ b/cc/CCOcclusionTrackerTest.cpp
@@ -110,17 +110,25 @@ struct CCOcclusionTrackerTestMainThreadTypes {
typedef RenderSurfaceChromium RenderSurfaceType;
typedef TestContentLayerChromium ContentLayerType;
typedef scoped_refptr<LayerChromium> LayerPtrType;
- typedef scoped_refptr<LayerChromium> PassLayerPtrType;
typedef scoped_refptr<ContentLayerType> ContentLayerPtrType;
- typedef scoped_refptr<ContentLayerType> PassContentLayerPtrType;
typedef CCLayerIterator<LayerChromium, std::vector<scoped_refptr<LayerChromium> >, RenderSurfaceChromium, CCLayerIteratorActions::FrontToBack> LayerIterator;
typedef CCOcclusionTracker OcclusionTrackerType;
- static PassLayerPtrType createLayer()
+ static LayerPtrType createLayer()
{
return LayerChromium::create();
}
- static PassContentLayerPtrType createContentLayer() { return make_scoped_refptr(new ContentLayerType()); }
+ static ContentLayerPtrType createContentLayer() { return make_scoped_refptr(new ContentLayerType()); }
+
+ static LayerPtrType passLayerPtr(ContentLayerPtrType& layer)
+ {
+ return layer.release();
+ }
+
+ static LayerPtrType passLayerPtr(LayerPtrType& layer)
+ {
+ return layer.release();
+ }
static void destroyLayer(LayerPtrType& layer)
{
@@ -132,20 +140,28 @@ struct CCOcclusionTrackerTestImplThreadTypes {
typedef CCLayerImpl LayerType;
typedef CCRenderSurface RenderSurfaceType;
typedef TestContentLayerImpl ContentLayerType;
- typedef OwnPtr<CCLayerImpl> LayerPtrType;
- typedef PassOwnPtr<CCLayerImpl> PassLayerPtrType;
- typedef OwnPtr<ContentLayerType> ContentLayerPtrType;
- typedef PassOwnPtr<ContentLayerType> PassContentLayerPtrType;
+ typedef scoped_ptr<CCLayerImpl> LayerPtrType;
+ typedef scoped_ptr<ContentLayerType> ContentLayerPtrType;
typedef CCLayerIterator<CCLayerImpl, std::vector<CCLayerImpl*>, CCRenderSurface, CCLayerIteratorActions::FrontToBack> LayerIterator;
typedef CCOcclusionTrackerImpl OcclusionTrackerType;
- static PassLayerPtrType createLayer() { return CCLayerImpl::create(nextCCLayerImplId++); }
- static PassContentLayerPtrType createContentLayer() { return adoptPtr(new ContentLayerType(nextCCLayerImplId++)); }
+ static LayerPtrType createLayer() { return CCLayerImpl::create(nextCCLayerImplId++); }
+ static ContentLayerPtrType createContentLayer() { return make_scoped_ptr(new ContentLayerType(nextCCLayerImplId++)); }
static int nextCCLayerImplId;
+ static LayerPtrType passLayerPtr(LayerPtrType& layer)
+ {
+ return layer.Pass();
+ }
+
+ static LayerPtrType passLayerPtr(ContentLayerPtrType& layer)
+ {
+ return layer.PassAs<LayerType>();
+ }
+
static void destroyLayer(LayerPtrType& layer)
{
- layer.clear();
+ layer.reset();
}
};
@@ -177,7 +193,7 @@ protected:
setProperties(layerPtr, transform, position, bounds);
ASSERT(!m_root);
- m_root = layer.release();
+ m_root = Types::passLayerPtr(layer);
return layerPtr;
}
@@ -186,7 +202,7 @@ protected:
typename Types::LayerPtrType layer(Types::createLayer());
typename Types::LayerType* layerPtr = layer.get();
setProperties(layerPtr, transform, position, bounds);
- parent->addChild(layer.release());
+ parent->addChild(Types::passLayerPtr(layer));
return layerPtr;
}
@@ -215,7 +231,7 @@ protected:
layerPtr->setOpaqueContentsRect(IntRect());
}
- parent->addChild(layer.release());
+ parent->addChild(Types::passLayerPtr(layer));
return layerPtr;
}
@@ -224,7 +240,7 @@ protected:
typename Types::ContentLayerPtrType layer(Types::createContentLayer());
typename Types::ContentLayerType* layerPtr = layer.get();
setProperties(layerPtr, transform, position, bounds);
- setReplica(owningLayer, layer.release());
+ setReplica(owningLayer, Types::passLayerPtr(layer));
return layerPtr;
}
@@ -233,7 +249,7 @@ protected:
typename Types::ContentLayerPtrType layer(Types::createContentLayer());
typename Types::ContentLayerType* layerPtr = layer.get();
setProperties(layerPtr, identityMatrix, FloatPoint(), bounds);
- setMask(owningLayer, layer.release());
+ setMask(owningLayer, Types::passLayerPtr(layer));
return layerPtr;
}
@@ -354,9 +370,9 @@ private:
m_replicaLayers.push_back(layer);
}
- void setReplica(CCLayerImpl* owningLayer, PassOwnPtr<CCLayerImpl> layer)
+ void setReplica(CCLayerImpl* owningLayer, scoped_ptr<CCLayerImpl> layer)
{
- owningLayer->setReplicaLayer(layer);
+ owningLayer->setReplicaLayer(layer.Pass());
}
void setMask(LayerChromium* owningLayer, scoped_refptr<LayerChromium> layer)
@@ -365,9 +381,9 @@ private:
m_maskLayers.push_back(layer);
}
- void setMask(CCLayerImpl* owningLayer, PassOwnPtr<CCLayerImpl> layer)
+ void setMask(CCLayerImpl* owningLayer, scoped_ptr<CCLayerImpl> layer)
{
- owningLayer->setMaskLayer(layer);
+ owningLayer->setMaskLayer(layer.Pass());
}
// These hold ownership of the layers for the duration of the test.

Powered by Google App Engine
This is Rietveld 408576698