Chromium Code Reviews| Index: ppapi/shared_impl/ppb_file_io_shared.cc |
| diff --git a/ppapi/shared_impl/ppb_file_io_shared.cc b/ppapi/shared_impl/ppb_file_io_shared.cc |
| index dcad4d70caa44dbc94005d56dd6728a77af7252b..b3eefbc493ba7d84c920b3363462838aa7442d46 100644 |
| --- a/ppapi/shared_impl/ppb_file_io_shared.cc |
| +++ b/ppapi/shared_impl/ppb_file_io_shared.cc |
| @@ -24,8 +24,6 @@ using thunk::PPB_FileRef_API; |
| PPB_FileIO_Shared::CallbackEntry::CallbackEntry() |
| : read_buffer(NULL), |
| info(NULL) { |
| - callback.func = NULL; |
| - callback.user_data = NULL; |
| } |
| PPB_FileIO_Shared::CallbackEntry::CallbackEntry(const CallbackEntry& entry) |
| @@ -59,11 +57,8 @@ PPB_FileIO_Shared::~PPB_FileIO_Shared() { |
| void PPB_FileIO_Shared::LastPluginRefWasDeleted() { |
| // Abort all pending callbacks. Do this by posting a task to avoid reentering |
| // the plugin's Release() call that probably deleted this object. |
| - for (size_t i = 0; i < callbacks_.size(); i++) { |
| - MessageLoop::current()->PostTask(FROM_HERE, base::Bind( |
| - callbacks_[i].callback.func, callbacks_[i].callback.user_data, |
| - static_cast<int32_t>(PP_ERROR_ABORTED))); |
| - } |
| + for (size_t i = 0; i < callbacks_.size(); i++) |
|
viettrungluu
2012/01/03 22:43:46
I suppose you could also use PostAbortForResource(
brettw
2012/01/04 00:27:29
Actually I can just delete this code, it's already
|
| + callbacks_[i].callback->PostAbort(); |
| callbacks_.erase(callbacks_.begin(), callbacks_.end()); |
| } |
| @@ -217,7 +212,7 @@ void PPB_FileIO_Shared::RegisterCallback(OperationType op, |
| (pending_op_ != OPERATION_EXCLUSIVE && pending_op_ == op)); |
| CallbackEntry entry; |
| - entry.callback = callback; |
| + entry.callback = new TrackedCallback(this, callback); |
| entry.read_buffer = read_buffer; |
| entry.info = info; |
| callbacks_.push_back(entry); |
| @@ -233,7 +228,7 @@ void PPB_FileIO_Shared::RunAndRemoveFirstPendingCallback(int32_t result) { |
| if (callbacks_.empty()) |
| pending_op_ = OPERATION_NONE; |
| - PP_RunCompletionCallback(&front.callback, result); |
| + front.callback->Run(result); |
| } |
| } // namespace ppapi |