diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-17 20:56:52 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-17 20:56:52 +0000 |
commit | 4958f9fb8d57661a370ac4291a27b740daadbdd7 (patch) | |
tree | 3df922741e345b036b0e8390b9b78d58ca6ba41c /base/file_util_proxy.cc | |
parent | e12ba91ddcd2cacb66f4c38216f1fac065968e5e (diff) | |
download | chromium_src-4958f9fb8d57661a370ac4291a27b740daadbdd7.zip chromium_src-4958f9fb8d57661a370ac4291a27b740daadbdd7.tar.gz chromium_src-4958f9fb8d57661a370ac4291a27b740daadbdd7.tar.bz2 |
base::Bind: Convert FileUtilProxy::WriteCallback.
BUG=none
TEST=none
R=csilv@chromium.org
Review URL: http://codereview.chromium.org/8321014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105912 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/file_util_proxy.cc')
-rw-r--r-- | base/file_util_proxy.cc | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/base/file_util_proxy.cc b/base/file_util_proxy.cc index b1652c4..f0192d9 100644 --- a/base/file_util_proxy.cc +++ b/base/file_util_proxy.cc @@ -564,7 +564,7 @@ class RelayWrite : public MessageLoopRelay { int64 offset, const char* buffer, int bytes_to_write, - base::FileUtilProxy::WriteCallback* callback) + const base::FileUtilProxy::WriteCallback& callback) : file_(file), offset_(offset), buffer_(new char[bytes_to_write]), @@ -583,10 +583,8 @@ class RelayWrite : public MessageLoopRelay { } virtual void RunCallback() { - if (callback_) { - callback_->Run(error_code(), bytes_written_); - delete callback_; - } + if (!callback_.is_null()) + callback_.Run(error_code(), bytes_written_); } private: @@ -594,7 +592,7 @@ class RelayWrite : public MessageLoopRelay { int64 offset_; scoped_array<char> buffer_; int bytes_to_write_; - base::FileUtilProxy::WriteCallback* callback_; + base::FileUtilProxy::WriteCallback callback_; int bytes_written_; }; @@ -862,11 +860,10 @@ bool FileUtilProxy::Write( int64 offset, const char* buffer, int bytes_to_write, - WriteCallback* callback) { - if (bytes_to_write <= 0) { - delete callback; + const WriteCallback& callback) { + if (bytes_to_write <= 0) return false; - } + return Start(FROM_HERE, message_loop_proxy, new RelayWrite(file, offset, buffer, bytes_to_write, callback)); } |