Index: webkit/plugins/ppapi/ppb_file_io_impl.cc |
diff --git a/webkit/plugins/ppapi/ppb_file_io_impl.cc b/webkit/plugins/ppapi/ppb_file_io_impl.cc |
index 213071e441db0d776170fedcb1cb9ccd401ba5b2..7cd8263de16fde3a4084788870ffacc0b306b196 100644 |
--- a/webkit/plugins/ppapi/ppb_file_io_impl.cc |
+++ b/webkit/plugins/ppapi/ppb_file_io_impl.cc |
@@ -52,6 +52,7 @@ PPB_FileIO_Impl::CallbackEntry::~CallbackEntry() { |
PPB_FileIO_Impl::PPB_FileIO_Impl(PP_Instance instance) |
: Resource(instance), |
ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)), |
file_(base::kInvalidPlatformFileValue), |
file_system_type_(PP_FILESYSTEMTYPE_INVALID), |
pending_op_(OPERATION_NONE), |
@@ -132,7 +133,8 @@ int32_t PPB_FileIO_Impl::Query(PP_FileInfo* info, |
if (!base::FileUtilProxy::GetFileInfoFromPlatformFile( |
plugin_delegate->GetFileThreadMessageLoopProxy(), file_, |
- callback_factory_.NewCallback(&PPB_FileIO_Impl::QueryInfoCallback))) |
+ base::Bind(&PPB_FileIO_Impl::QueryInfoCallback, |
+ weak_factory_.GetWeakPtr()))) |
return PP_ERROR_FAILED; |
RegisterCallback(OPERATION_EXCLUSIVE, callback, NULL); |