Index: chrome/browser/sync/syncable/syncable.cc |
diff --git a/chrome/browser/sync/syncable/syncable.cc b/chrome/browser/sync/syncable/syncable.cc |
index a2a9a98599b010e7d22b69e29ff1c8fd54a41fc4..cf193797c1c62d79e8aed72907a12ceb8590c58e 100644 |
--- a/chrome/browser/sync/syncable/syncable.cc |
+++ b/chrome/browser/sync/syncable/syncable.cc |
@@ -32,6 +32,7 @@ |
#include "base/perftimer.h" |
#include "base/scoped_ptr.h" |
#include "base/string_util.h" |
+#include "base/stl_util-inl.h" |
#include "base/time.h" |
#include "chrome/browser/sync/engine/syncer.h" |
#include "chrome/browser/sync/engine/syncer_util.h" |
@@ -183,10 +184,6 @@ Directory::Kernel::Kernel(const FilePath& db_path, |
next_metahandle(info.max_metahandle + 1) { |
} |
-inline void DeleteEntry(EntryKernel* kernel) { |
- delete kernel; |
-} |
- |
void Directory::Kernel::AddRef() { |
base::subtle::NoBarrier_AtomicIncrement(&refcount, 1); |
} |
@@ -207,7 +204,7 @@ Directory::Kernel::~Kernel() { |
delete parent_id_child_index; |
delete client_tag_index; |
delete ids_index; |
- for_each(metahandles_index->begin(), metahandles_index->end(), DeleteEntry); |
+ STLDeleteElements(metahandles_index); |
delete metahandles_index; |
} |
@@ -339,7 +336,7 @@ EntryKernel* Directory::GetEntryByHandle(const int64 metahandle, |
// Look up in memory |
kernel_->needle.put(META_HANDLE, metahandle); |
MetahandlesIndex::iterator found = |
- kernel_->metahandles_index->find(&kernel_->needle); |
+ kernel_->metahandles_index->find(&kernel_->needle); |
if (found != kernel_->metahandles_index->end()) { |
// Found it in memory. Easy. |
return *found; |
@@ -630,17 +627,19 @@ void Directory::PurgeEntriesWithTypeIn(const std::set<ModelType>& types) { |
kernel_->metahandles_to_purge->insert(handle); |
size_t num_erased = 0; |
- num_erased = kernel_->ids_index->erase(*it); |
+ EntryKernel* entry = *it; |
+ num_erased = kernel_->ids_index->erase(entry); |
DCHECK_EQ(1u, num_erased); |
- num_erased = kernel_->client_tag_index->erase(*it); |
- DCHECK_EQ((*it)->ref(UNIQUE_CLIENT_TAG).empty(), !num_erased); |
+ num_erased = kernel_->client_tag_index->erase(entry); |
+ DCHECK_EQ(entry->ref(UNIQUE_CLIENT_TAG).empty(), !num_erased); |
num_erased = kernel_->unsynced_metahandles->erase(handle); |
- DCHECK_EQ((*it)->ref(IS_UNSYNCED), num_erased > 0); |
+ DCHECK_EQ(entry->ref(IS_UNSYNCED), num_erased > 0); |
num_erased = kernel_->unapplied_update_metahandles->erase(handle); |
- DCHECK_EQ((*it)->ref(IS_UNAPPLIED_UPDATE), num_erased > 0); |
- num_erased = kernel_->parent_id_child_index->erase(*it); |
- DCHECK_EQ((*it)->ref(IS_DEL), !num_erased); |
+ DCHECK_EQ(entry->ref(IS_UNAPPLIED_UPDATE), num_erased > 0); |
+ num_erased = kernel_->parent_id_child_index->erase(entry); |
+ DCHECK_EQ(entry->ref(IS_DEL), !num_erased); |
kernel_->metahandles_index->erase(it++); |
+ delete entry; |
} else { |
++it; |
} |