Index: components/gcm_driver/gcm_client_impl.cc |
diff --git a/components/gcm_driver/gcm_client_impl.cc b/components/gcm_driver/gcm_client_impl.cc |
index 8ffc695423222f7ffd6877f1e902d442b354b52d..e046aefc20194985d4ff9b977e2a9a366835d3f8 100644 |
--- a/components/gcm_driver/gcm_client_impl.cc |
+++ b/components/gcm_driver/gcm_client_impl.cc |
@@ -301,9 +301,6 @@ GCMClientImpl::GCMClientImpl(scoped_ptr<GCMInternalsBuilder> internals_builder) |
clock_(internals_builder_->BuildClock()), |
gcm_store_reset_(false), |
url_request_context_getter_(NULL), |
- pending_registration_requests_deleter_(&pending_registration_requests_), |
- pending_unregistration_requests_deleter_( |
- &pending_unregistration_requests_), |
periodic_checkin_ptr_factory_(this), |
destroying_gcm_store_ptr_factory_(this), |
weak_ptr_factory_(this) { |
@@ -838,8 +835,8 @@ void GCMClientImpl::ResetCache() { |
mcs_client_.reset(); |
checkin_request_.reset(); |
// Delete all of the pending registration and unregistration requests. |
- STLDeleteValues(&pending_registration_requests_); |
- STLDeleteValues(&pending_unregistration_requests_); |
+ pending_registration_requests_.clear(); |
+ pending_unregistration_requests_.clear(); |
} |
void GCMClientImpl::Register( |
@@ -916,20 +913,16 @@ void GCMClientImpl::Register( |
device_checkin_info_.secret, |
registration_info->app_id); |
- RegistrationRequest* registration_request = |
- new RegistrationRequest(gservices_settings_.GetRegistrationURL(), |
- request_info, |
- request_handler.Pass(), |
- GetGCMBackoffPolicy(), |
- base::Bind(&GCMClientImpl::OnRegisterCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- registration_info), |
- kMaxRegistrationRetries, |
- url_request_context_getter_, |
- &recorder_, |
- source_to_record); |
- pending_registration_requests_[registration_info] = registration_request; |
+ scoped_ptr<RegistrationRequest> registration_request(new RegistrationRequest( |
+ gservices_settings_.GetRegistrationURL(), request_info, |
+ request_handler.Pass(), GetGCMBackoffPolicy(), |
+ base::Bind(&GCMClientImpl::OnRegisterCompleted, |
+ weak_ptr_factory_.GetWeakPtr(), registration_info), |
+ kMaxRegistrationRetries, url_request_context_getter_, &recorder_, |
+ source_to_record)); |
registration_request->Start(); |
+ pending_registration_requests_.insert(registration_info, |
+ registration_request.Pass()); |
} |
void GCMClientImpl::OnRegisterCompleted( |
@@ -939,7 +932,7 @@ void GCMClientImpl::OnRegisterCompleted( |
DCHECK(delegate_); |
Result result; |
- PendingRegistrationRequests::iterator iter = |
+ PendingRegistrationRequests::const_iterator iter = |
pending_registration_requests_.find(registration_info); |
if (iter == pending_registration_requests_.end()) |
result = UNKNOWN_ERROR; |
@@ -967,10 +960,8 @@ void GCMClientImpl::OnRegisterCompleted( |
result == SUCCESS ? registration_id : std::string(), |
result); |
- if (iter != pending_registration_requests_.end()) { |
- delete iter->second; |
+ if (iter != pending_registration_requests_.end()) |
pending_registration_requests_.erase(iter); |
- } |
} |
void GCMClientImpl::Unregister( |
@@ -1042,18 +1033,16 @@ void GCMClientImpl::Unregister( |
device_checkin_info_.secret, |
registration_info->app_id); |
- UnregistrationRequest* unregistration_request = new UnregistrationRequest( |
- gservices_settings_.GetRegistrationURL(), |
- request_info, |
- request_handler.Pass(), |
- GetGCMBackoffPolicy(), |
- base::Bind(&GCMClientImpl::OnUnregisterCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- registration_info), |
- url_request_context_getter_, |
- &recorder_); |
- pending_unregistration_requests_[registration_info] = unregistration_request; |
+ scoped_ptr<UnregistrationRequest> unregistration_request( |
+ new UnregistrationRequest( |
+ gservices_settings_.GetRegistrationURL(), request_info, |
+ request_handler.Pass(), GetGCMBackoffPolicy(), |
+ base::Bind(&GCMClientImpl::OnUnregisterCompleted, |
+ weak_ptr_factory_.GetWeakPtr(), registration_info), |
+ url_request_context_getter_, &recorder_)); |
unregistration_request->Start(); |
+ pending_unregistration_requests_.insert(registration_info, |
+ unregistration_request.Pass()); |
} |
void GCMClientImpl::OnUnregisterCompleted( |
@@ -1065,13 +1054,7 @@ void GCMClientImpl::OnUnregisterCompleted( |
registration_info, |
status == UnregistrationRequest::SUCCESS ? SUCCESS : SERVER_ERROR); |
- PendingUnregistrationRequests::iterator iter = |
- pending_unregistration_requests_.find(registration_info); |
- if (iter == pending_unregistration_requests_.end()) |
- return; |
- |
- delete iter->second; |
- pending_unregistration_requests_.erase(iter); |
+ pending_unregistration_requests_.erase(registration_info); |
} |
void GCMClientImpl::OnGCMStoreDestroyed(bool success) { |