Chromium Code Reviews| Index: net/url_request/url_fetcher_response_writer.cc |
| diff --git a/net/url_request/url_fetcher_response_writer.cc b/net/url_request/url_fetcher_response_writer.cc |
| index cb30dad8089efd6acd2d699126782cce3d147c45..d2f42370b3644f452e592b11310edf6c3c04634f 100644 |
| --- a/net/url_request/url_fetcher_response_writer.cc |
| +++ b/net/url_request/url_fetcher_response_writer.cc |
| @@ -102,8 +102,18 @@ int URLFetcherFileWriter::Write(IOBuffer* buffer, |
| } |
| int URLFetcherFileWriter::Finish(const CompletionCallback& callback) { |
| + int result = file_stream_->Close(base::Bind( |
| + &URLFetcherFileWriter::CloseComplete, base::Unretained(this), callback)); |
|
mmenke
2013/09/10 18:32:52
The base::Unretained changes the safe usage model
waffles
2013/09/10 21:41:34
Done.
|
| + if (result != ERR_IO_PENDING) |
| + file_stream_.reset(); |
| + return result; |
| +} |
| + |
| +void URLFetcherFileWriter::CloseComplete(const CompletionCallback& callback, |
| + int result) { |
| + // Either we closed the file or we can't; either way destroy the file_stream. |
| file_stream_.reset(); |
| - return OK; |
| + callback.Run(result); |
| } |
| void URLFetcherFileWriter::DidWrite(const CompletionCallback& callback, |