diff options
Diffstat (limited to 'chrome/browser/chromeos/file_system_provider/request_manager.cc')
-rw-r--r-- | chrome/browser/chromeos/file_system_provider/request_manager.cc | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/file_system_provider/request_manager.cc b/chrome/browser/chromeos/file_system_provider/request_manager.cc index 6fb39dd..9abe554 100644 --- a/chrome/browser/chromeos/file_system_provider/request_manager.cc +++ b/chrome/browser/chromeos/file_system_provider/request_manager.cc @@ -49,9 +49,7 @@ RequestManager::~RequestManager() { while (it != requests_.end()) { const int request_id = it->first; ++it; - RejectRequest(request_id, - scoped_ptr<RequestValue>(new RequestValue()), - base::File::FILE_ERROR_ABORT); + RejectRequest(request_id, base::File::FILE_ERROR_ABORT); } DCHECK_EQ(0u, requests_.size()); @@ -113,15 +111,15 @@ bool RequestManager::FulfillRequest(int request_id, return true; } -bool RequestManager::RejectRequest(int request_id, - scoped_ptr<RequestValue> response, - base::File::Error error) { +bool RequestManager::RejectRequest(int request_id, base::File::Error error) { RequestMap::iterator request_it = requests_.find(request_id); if (request_it == requests_.end()) return false; - request_it->second->handler->OnError(request_id, response.Pass(), error); + request_it->second->handler->OnError(request_id, error); + FOR_EACH_OBSERVER(Observer, observers_, OnRequestRejected(request_id, error)); + DestroyRequest(request_id); return true; @@ -152,9 +150,7 @@ RequestManager::Request::~Request() {} void RequestManager::OnRequestTimeout(int request_id) { FOR_EACH_OBSERVER(Observer, observers_, OnRequestTimeouted(request_id)); - RejectRequest(request_id, - scoped_ptr<RequestValue>(new RequestValue()), - base::File::FILE_ERROR_ABORT); + RejectRequest(request_id, base::File::FILE_ERROR_ABORT); } void RequestManager::DestroyRequest(int request_id) { |