Index: components/invalidation/impl/registration_manager.cc |
diff --git a/components/invalidation/impl/registration_manager.cc b/components/invalidation/impl/registration_manager.cc |
index 504986b00baae683d82e55abfc98ae104a34d2fc..a2d3c3e5303fa63bbc31d768ff6d57ffca8bfc7a 100644 |
--- a/components/invalidation/impl/registration_manager.cc |
+++ b/components/invalidation/impl/registration_manager.cc |
@@ -12,7 +12,6 @@ |
#include <string> |
#include <utility> |
-#include "base/memory/ptr_util.h" |
#include "base/rand_util.h" |
#include "base/stl_util.h" |
#include "components/invalidation/public/invalidation_util.h" |
@@ -66,6 +65,7 @@ |
RegistrationManager::~RegistrationManager() { |
DCHECK(CalledOnValidThread()); |
+ base::STLDeleteValues(®istration_statuses_); |
} |
ObjectIdSet RegistrationManager::UpdateRegisteredIds(const ObjectIdSet& ids) { |
@@ -87,8 +87,8 @@ |
for (ObjectIdSet::const_iterator it = to_register.begin(); |
it != to_register.end(); ++it) { |
if (!base::ContainsKey(registration_statuses_, *it)) { |
- registration_statuses_[*it] = |
- base::MakeUnique<RegistrationStatus>(*it, this); |
+ registration_statuses_.insert( |
+ std::make_pair(*it, new RegistrationStatus(*it, this))); |
} |
if (!IsIdRegistered(*it)) { |
TryRegisterId(*it, false /* is-retry */); |
@@ -101,7 +101,7 @@ |
void RegistrationManager::MarkRegistrationLost( |
const invalidation::ObjectId& id) { |
DCHECK(CalledOnValidThread()); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::const_iterator it = registration_statuses_.find(id); |
if (it == registration_statuses_.end()) { |
DVLOG(1) << "Attempt to mark non-existent registration for " |
<< ObjectIdToString(id) << " as lost"; |
@@ -117,7 +117,8 @@ |
void RegistrationManager::MarkAllRegistrationsLost() { |
DCHECK(CalledOnValidThread()); |
- for (auto it = registration_statuses_.begin(); |
+ for (RegistrationStatusMap::const_iterator it = |
+ registration_statuses_.begin(); |
it != registration_statuses_.end(); ++it) { |
if (IsIdRegistered(it->first)) { |
MarkRegistrationLost(it->first); |
@@ -127,7 +128,7 @@ |
void RegistrationManager::DisableId(const invalidation::ObjectId& id) { |
DCHECK(CalledOnValidThread()); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::const_iterator it = registration_statuses_.find(id); |
if (it == registration_statuses_.end()) { |
DVLOG(1) << "Attempt to disable non-existent registration for " |
<< ObjectIdToString(id); |
@@ -163,9 +164,11 @@ |
RegistrationManager::GetPendingRegistrationsForTest() const { |
DCHECK(CalledOnValidThread()); |
PendingRegistrationMap pending_registrations; |
- for (const auto& status_pair : registration_statuses_) { |
- const invalidation::ObjectId& id = status_pair.first; |
- RegistrationStatus* status = status_pair.second.get(); |
+ for (RegistrationStatusMap::const_iterator it = |
+ registration_statuses_.begin(); |
+ it != registration_statuses_.end(); ++it) { |
+ const invalidation::ObjectId& id = it->first; |
+ RegistrationStatus* status = it->second; |
if (status->registration_timer.IsRunning()) { |
pending_registrations[id].last_registration_request = |
status->last_registration_request; |
@@ -181,9 +184,11 @@ |
void RegistrationManager::FirePendingRegistrationsForTest() { |
DCHECK(CalledOnValidThread()); |
- for (const auto& status_pair : registration_statuses_) { |
- if (status_pair.second->registration_timer.IsRunning()) { |
- status_pair.second->DoRegister(); |
+ for (RegistrationStatusMap::const_iterator it = |
+ registration_statuses_.begin(); |
+ it != registration_statuses_.end(); ++it) { |
+ if (it->second->registration_timer.IsRunning()) { |
+ it->second->DoRegister(); |
} |
} |
} |
@@ -199,13 +204,13 @@ |
void RegistrationManager::TryRegisterId(const invalidation::ObjectId& id, |
bool is_retry) { |
DCHECK(CalledOnValidThread()); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::const_iterator it = registration_statuses_.find(id); |
if (it == registration_statuses_.end()) { |
NOTREACHED() << "TryRegisterId called on " << ObjectIdToString(id) |
<< " which is not in the registration map"; |
return; |
} |
- RegistrationStatus* status = it->second.get(); |
+ RegistrationStatus* status = it->second; |
if (!status->enabled) { |
// Disabled, so do nothing. |
return; |
@@ -253,7 +258,7 @@ |
void RegistrationManager::DoRegisterId(const invalidation::ObjectId& id) { |
DCHECK(CalledOnValidThread()); |
invalidation_client_->Register(id); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::const_iterator it = registration_statuses_.find(id); |
if (it == registration_statuses_.end()) { |
NOTREACHED() << "DoRegisterId called on " << ObjectIdToString(id) |
<< " which is not in the registration map"; |
@@ -266,12 +271,13 @@ |
void RegistrationManager::UnregisterId(const invalidation::ObjectId& id) { |
DCHECK(CalledOnValidThread()); |
invalidation_client_->Unregister(id); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::iterator it = registration_statuses_.find(id); |
if (it == registration_statuses_.end()) { |
NOTREACHED() << "UnregisterId called on " << ObjectIdToString(id) |
<< " which is not in the registration map"; |
return; |
} |
+ delete it->second; |
registration_statuses_.erase(it); |
} |
@@ -279,9 +285,11 @@ |
ObjectIdSet RegistrationManager::GetRegisteredIds() const { |
DCHECK(CalledOnValidThread()); |
ObjectIdSet ids; |
- for (const auto& status_pair : registration_statuses_) { |
- if (IsIdRegistered(status_pair.first)) { |
- ids.insert(status_pair.first); |
+ for (RegistrationStatusMap::const_iterator it = |
+ registration_statuses_.begin(); |
+ it != registration_statuses_.end(); ++it) { |
+ if (IsIdRegistered(it->first)) { |
+ ids.insert(it->first); |
} |
} |
return ids; |
@@ -290,7 +298,8 @@ |
bool RegistrationManager::IsIdRegistered( |
const invalidation::ObjectId& id) const { |
DCHECK(CalledOnValidThread()); |
- auto it = registration_statuses_.find(id); |
+ RegistrationStatusMap::const_iterator it = |
+ registration_statuses_.find(id); |
return it != registration_statuses_.end() && |
it->second->state == invalidation::InvalidationListener::REGISTERED; |
} |