| Index: webkit/fileapi/file_system_operation.cc
|
| diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc
|
| index a02e2a75eaccac5f10fa19bdcf8af79269347f7f..93bd3aec1b6dccae64dc700348fdee8750ae8489 100644
|
| --- a/webkit/fileapi/file_system_operation.cc
|
| +++ b/webkit/fileapi/file_system_operation.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "webkit/fileapi/file_system_operation.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/time.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "net/base/escape.h"
|
| @@ -64,7 +65,8 @@ FileSystemOperation::FileSystemOperation(
|
| : proxy_(proxy),
|
| dispatcher_(dispatcher),
|
| file_system_operation_context_(file_system_context, file_util),
|
| - callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
|
| DCHECK(dispatcher);
|
| #ifndef NDEBUG
|
| pending_operation_ = kOperationNone;
|
| @@ -179,10 +181,7 @@ void FileSystemOperation::DelayedCreateDirectoryForQuota(
|
| file_system_operation_context_.src_type()));
|
|
|
| FileSystemFileUtilProxy::CreateDirectory(
|
| - file_system_operation_context_,
|
| - proxy_,
|
| - src_virtual_path_,
|
| - exclusive_,
|
| + file_system_operation_context_, proxy_, src_virtual_path_, exclusive_,
|
| recursive_,
|
| callback_factory_.NewCallback(
|
| &FileSystemOperation::DidFinishFileOperation));
|
| @@ -461,8 +460,8 @@ void FileSystemOperation::DelayedWriteForQuota(quota::QuotaStatusCode status,
|
| src_virtual_path_,
|
| base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_WRITE |
|
| base::PLATFORM_FILE_ASYNC,
|
| - callback_factory_.NewCallback(
|
| - &FileSystemOperation::OnFileOpenedForWrite));
|
| + base::Bind(&FileSystemOperation::OnFileOpenedForWrite,
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void FileSystemOperation::Truncate(const GURL& path, int64 length) {
|
| @@ -588,12 +587,9 @@ void FileSystemOperation::DelayedOpenFileForQuota(quota::QuotaStatusCode status,
|
| file_system_operation_context_.src_type()));
|
|
|
| FileSystemFileUtilProxy::CreateOrOpen(
|
| - file_system_operation_context_,
|
| - proxy_,
|
| - src_virtual_path_,
|
| - file_flags_,
|
| - callback_factory_.NewCallback(
|
| - &FileSystemOperation::DidOpenFile));
|
| + file_system_operation_context_, proxy_, src_virtual_path_, file_flags_,
|
| + base::Bind(&FileSystemOperation::DidOpenFile,
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| // We can only get here on a write or truncate that's not yet completed.
|
|
|