Chromium Code Reviews| Index: chrome/utility/media_galleries/image_metadata_extractor.cc |
| diff --git a/chrome/utility/media_galleries/image_metadata_extractor.cc b/chrome/utility/media_galleries/image_metadata_extractor.cc |
| index 2b5fbfb684ae15bcfc65d8deb60ba0020c3213da..a13a5f2653a27e0cf81410ea8b2b01305d474b07 100644 |
| --- a/chrome/utility/media_galleries/image_metadata_extractor.cc |
| +++ b/chrome/utility/media_galleries/image_metadata_extractor.cc |
| @@ -29,9 +29,10 @@ namespace { |
| const size_t kMaxBufferSize = 50 * 1024 * 1024; // Arbitrary maximum of 50MB. |
| void FinishGetImageBytes( |
| - net::DrainableIOBuffer* buffer, |
| + const scoped_refptr<net::DrainableIOBuffer>& buffer, |
| media::DataSource* source, |
| - const base::Callback<void(net::DrainableIOBuffer*)>& callback, |
| + const base::Callback<void(const scoped_refptr<net::DrainableIOBuffer>&)>& |
|
Lei Zhang
2014/08/29 15:25:56
can you add a typedef for the callback?
dcheng
2014/08/29 16:32:01
Done.
|
| + callback, |
| int bytes_read) { |
| if (bytes_read == media::DataSource::kReadError) { |
| callback.Run(NULL); |
| @@ -41,20 +42,23 @@ void FinishGetImageBytes( |
| buffer->DidConsume(bytes_read); |
| // Didn't get the whole file. Continue reading to get the rest. |
| if (buffer->BytesRemaining() > 0) { |
| - source->Read(0, buffer->BytesRemaining(), |
| - reinterpret_cast<uint8*>(buffer->data()), |
| - base::Bind(&FinishGetImageBytes, make_scoped_refptr(buffer), |
| - base::Unretained(source), callback)); |
| + source->Read( |
| + 0, |
| + buffer->BytesRemaining(), |
| + reinterpret_cast<uint8*>(buffer->data()), |
| + base::Bind( |
| + &FinishGetImageBytes, buffer, base::Unretained(source), callback)); |
| return; |
| } |
| buffer->SetOffset(0); |
| - callback.Run(make_scoped_refptr(buffer)); |
| + callback.Run(buffer); |
| } |
| void GetImageBytes( |
| media::DataSource* source, |
| - const base::Callback<void(net::DrainableIOBuffer*)>& callback) { |
| + const base::Callback<void(const scoped_refptr<net::DrainableIOBuffer>&)>& |
| + callback) { |
| int64 size64 = 0; |
| if (!source->GetSize(&size64) || |
| base::saturated_cast<size_t>(size64) > kMaxBufferSize) { |
| @@ -383,8 +387,9 @@ int ImageMetadataExtractor::iso_equivalent() const { |
| } |
| void ImageMetadataExtractor::FinishExtraction( |
| - const DoneCallback& callback, net::DrainableIOBuffer* buffer) { |
| - if (!buffer) { |
| + const DoneCallback& callback, |
| + const scoped_refptr<net::DrainableIOBuffer>& buffer) { |
| + if (!buffer.get()) { |
| callback.Run(false); |
| return; |
| } |