summaryrefslogtreecommitdiffstats
path: root/webkit/plugins/ppapi/ppb_file_io_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/plugins/ppapi/ppb_file_io_impl.cc')
-rw-r--r--webkit/plugins/ppapi/ppb_file_io_impl.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/webkit/plugins/ppapi/ppb_file_io_impl.cc b/webkit/plugins/ppapi/ppb_file_io_impl.cc
index 1460b27..213071e 100644
--- a/webkit/plugins/ppapi/ppb_file_io_impl.cc
+++ b/webkit/plugins/ppapi/ppb_file_io_impl.cc
@@ -4,6 +4,7 @@
#include "webkit/plugins/ppapi/ppb_file_io_impl.h"
+#include "base/bind.h"
#include "base/callback.h"
#include "base/file_util.h"
#include "base/file_util_proxy.h"
@@ -54,7 +55,8 @@ PPB_FileIO_Impl::PPB_FileIO_Impl(PP_Instance instance)
file_(base::kInvalidPlatformFileValue),
file_system_type_(PP_FILESYSTEMTYPE_INVALID),
pending_op_(OPERATION_NONE),
- info_(NULL) {
+ info_(NULL),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_ptr_factory_(this)) {
}
PPB_FileIO_Impl::~PPB_FileIO_Impl() {
@@ -95,16 +97,16 @@ int32_t PPB_FileIO_Impl::Open(PP_Resource pp_file_ref,
file_system_url_ = file_ref->GetFileSystemURL();
if (!plugin_delegate->AsyncOpenFileSystemURL(
file_system_url_, flags,
- callback_factory_.NewCallback(
- &PPB_FileIO_Impl::AsyncOpenFileCallback)))
+ base::Bind(&PPB_FileIO_Impl::AsyncOpenFileCallback,
+ weak_ptr_factory_.GetWeakPtr())))
return PP_ERROR_FAILED;
} else {
if (file_system_type_ != PP_FILESYSTEMTYPE_EXTERNAL)
return PP_ERROR_FAILED;
if (!plugin_delegate->AsyncOpenFile(
file_ref->GetSystemPath(), flags,
- callback_factory_.NewCallback(
- &PPB_FileIO_Impl::AsyncOpenFileCallback)))
+ base::Bind(&PPB_FileIO_Impl::AsyncOpenFileCallback,
+ weak_ptr_factory_.GetWeakPtr())))
return PP_ERROR_FAILED;
}