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

Unified Diff: media/base/composite_data_source_factory.cc

Issue 9015015: Take advantage of the new Pass() machinery on scoped_ptr{,_malloc}. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 11 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
« no previous file with comments | « media/base/composite_data_source_factory.h ('k') | media/base/data_buffer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/base/composite_data_source_factory.cc
diff --git a/media/base/composite_data_source_factory.cc b/media/base/composite_data_source_factory.cc
index e75150593f2123f38e415f2d42d5051d399056f4..9a5e550a1184c829ede924023c539f443e5b8288 100644
--- a/media/base/composite_data_source_factory.cc
+++ b/media/base/composite_data_source_factory.cc
@@ -26,7 +26,7 @@ class CompositeDataSourceFactory::BuildRequest
void CallNextFactory();
void OnBuildDone(PipelineStatus status, DataSource* data_source);
- FactoryList factories_;
+ FactoryList factories_; // Not owned by this class.
};
CompositeDataSourceFactory::CompositeDataSourceFactory() {}
@@ -35,21 +35,25 @@ CompositeDataSourceFactory::~CompositeDataSourceFactory() {
STLDeleteElements(&factories_);
}
-void CompositeDataSourceFactory::AddFactory(DataSourceFactory* factory) {
- DCHECK(factory);
- factories_.push_back(factory);
+void CompositeDataSourceFactory::AddFactory(
+ scoped_ptr<DataSourceFactory> factory) {
+ DCHECK(factory.get());
+ factories_.push_back(factory.release());
}
-DataSourceFactory* CompositeDataSourceFactory::Clone() const {
- CompositeDataSourceFactory* new_factory = new CompositeDataSourceFactory();
+scoped_ptr<DataSourceFactory> CompositeDataSourceFactory::Clone() const {
+ scoped_ptr<CompositeDataSourceFactory> new_factory(
+ new CompositeDataSourceFactory());
for (FactoryList::const_iterator itr = factories_.begin();
itr != factories_.end();
++itr) {
- new_factory->AddFactory((*itr)->Clone());
+ new_factory->AddFactory((*itr)->Clone().Pass());
}
- return new_factory;
+ // TODO(fischman): replace the extra scoped_ptr+release() with Pass() when
+ // http://crbug.com/109026 is fixed.
+ return scoped_ptr<DataSourceFactory>(new_factory.release());
}
bool CompositeDataSourceFactory::AllowRequests() const {
« no previous file with comments | « media/base/composite_data_source_factory.h ('k') | media/base/data_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698