Chromium Code Reviews| Index: chrome/browser/ui/app_list/app_list_syncable_service.cc |
| diff --git a/chrome/browser/ui/app_list/app_list_syncable_service.cc b/chrome/browser/ui/app_list/app_list_syncable_service.cc |
| index aabaeb7b7b865440a51ebfe32d9e52f876505011..2d1c211b98f4c05ae8b84b227a4db7fafede8670 100644 |
| --- a/chrome/browser/ui/app_list/app_list_syncable_service.cc |
| +++ b/chrome/browser/ui/app_list/app_list_syncable_service.cc |
| @@ -8,6 +8,8 @@ |
| #include "base/command_line.h" |
| #include "base/macros.h" |
| +#include "base/memory/ptr_util.h" |
| +#include "base/stl_util.h" |
| #include "base/strings/string_util.h" |
| #include "build/build_config.h" |
| #include "chrome/browser/apps/drive/drive_app_provider.h" |
| @@ -275,9 +277,6 @@ AppListSyncableService::~AppListSyncableService() { |
| // Remove observers. |
| model_observer_.reset(); |
| model_pref_updater_.reset(); |
| - |
| - base::STLDeleteContainerPairSecondPointers(sync_items_.begin(), |
| - sync_items_.end()); |
| } |
| void AppListSyncableService::BuildModel() { |
| @@ -377,9 +376,9 @@ void AppListSyncableService::UntrackUninstalledDriveApp( |
| const AppListSyncableService::SyncItem* |
| AppListSyncableService::GetSyncItem(const std::string& id) const { |
| - SyncItemMap::const_iterator iter = sync_items_.find(id); |
| + auto iter = sync_items_.find(id); |
| if (iter != sync_items_.end()) |
| - return iter->second; |
| + return iter->second.get(); |
| return NULL; |
| } |
| @@ -524,7 +523,6 @@ void AppListSyncableService::DeleteSyncItem(SyncItem* sync_item) { |
| FROM_HERE, syncer::SyncChangeList(1, sync_change)); |
| } |
| std::string item_id = sync_item->item_id; |
| - delete sync_item; |
|
Nico
2016/09/22 15:56:12
(this another instance of the map<key, value> that
Avi (use Gerrit)
2016/09/22 19:17:17
Done.
|
| sync_items_.erase(item_id); |
| } |
| @@ -567,14 +565,14 @@ void AppListSyncableService::UpdateItem(AppListItem* app_item) { |
| void AppListSyncableService::RemoveSyncItem(const std::string& id) { |
| VLOG(2) << this << ": RemoveSyncItem: " << id.substr(0, 8); |
| - SyncItemMap::iterator iter = sync_items_.find(id); |
| + auto iter = sync_items_.find(id); |
| if (iter == sync_items_.end()) { |
| DVLOG(2) << this << " : RemoveSyncItem: No Item."; |
| return; |
| } |
| // Check for existing RemoveDefault sync item. |
| - SyncItem* sync_item = iter->second; |
| + SyncItem* sync_item = iter->second.get(); |
| sync_pb::AppListSpecifics::AppListItemType type = sync_item->item_type; |
| if (type == sync_pb::AppListSpecifics::TYPE_REMOVE_DEFAULT_APP) { |
| // RemoveDefault item exists, just return. |
| @@ -601,9 +599,8 @@ void AppListSyncableService::ResolveFolderPositions() { |
| return; |
| VLOG(1) << "ResolveFolderPositions."; |
| - for (SyncItemMap::iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ++iter) { |
| - SyncItem* sync_item = iter->second; |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end(); ++iter) { |
|
Nico
2016/09/22 15:56:12
for-each (?)
Avi (use Gerrit)
2016/09/22 19:17:17
Done.
|
| + SyncItem* sync_item = iter->second.get(); |
| if (sync_item->item_type != sync_pb::AppListSpecifics::TYPE_FOLDER) |
| continue; |
| AppListItem* app_item = model_->FindItem(sync_item->item_id); |
| @@ -627,13 +624,11 @@ void AppListSyncableService::PruneEmptySyncFolders() { |
| return; |
| std::set<std::string> parent_ids; |
| - for (SyncItemMap::iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ++iter) { |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end(); ++iter) { |
|
Nico
2016/09/22 15:56:11
same
Avi (use Gerrit)
2016/09/22 19:17:17
Done.
|
| parent_ids.insert(iter->second->parent_id); |
| } |
| - for (SyncItemMap::iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ) { |
| - SyncItem* sync_item = (iter++)->second; |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end();) { |
|
Nico
2016/09/22 15:56:11
same
Avi (use Gerrit)
2016/09/22 19:17:17
Nope.
This loop deletes items (DeleteSyncItem) so
|
| + SyncItem* sync_item = (iter++)->second.get(); |
| if (sync_item->item_type != sync_pb::AppListSpecifics::TYPE_FOLDER) |
| continue; |
| if (!base::ContainsKey(parent_ids, sync_item->item_id)) |
| @@ -667,8 +662,7 @@ syncer::SyncMergeResult AppListSyncableService::MergeDataAndStartSyncing( |
| // Copy all sync items to |unsynced_items|. |
| std::set<std::string> unsynced_items; |
| - for (SyncItemMap::const_iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ++iter) { |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end(); ++iter) { |
|
Nico
2016/09/22 15:56:12
same
Avi (use Gerrit)
2016/09/22 19:17:17
Done.
|
| unsynced_items.insert(iter->first); |
| } |
| @@ -744,10 +738,9 @@ syncer::SyncDataList AppListSyncableService::GetAllSyncData( |
| VLOG(1) << this << ": GetAllSyncData: " << sync_items_.size(); |
| syncer::SyncDataList list; |
| - for (SyncItemMap::const_iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ++iter) { |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end(); ++iter) { |
| VLOG(2) << this << " -> SYNC: " << iter->second->ToString(); |
| - list.push_back(GetSyncDataFromSyncItem(iter->second)); |
| + list.push_back(GetSyncDataFromSyncItem(iter->second.get())); |
| } |
| return list; |
| } |
| @@ -820,7 +813,6 @@ bool AppListSyncableService::ProcessSyncItemSpecifics( |
| } |
| VLOG(2) << this << " - ProcessSyncItem: Delete existing entry: " |
| << sync_item->ToString(); |
| - delete sync_item; |
| sync_items_.erase(item_id); |
| } |
| @@ -949,10 +941,10 @@ void AppListSyncableService::SendSyncChange( |
| AppListSyncableService::SyncItem* |
| AppListSyncableService::FindSyncItem(const std::string& item_id) { |
| - SyncItemMap::iterator iter = sync_items_.find(item_id); |
| + auto iter = sync_items_.find(item_id); |
| if (iter == sync_items_.end()) |
| return NULL; |
| - return iter->second; |
| + return iter->second.get(); |
| } |
| AppListSyncableService::SyncItem* |
| @@ -960,9 +952,8 @@ AppListSyncableService::CreateSyncItem( |
| const std::string& item_id, |
| sync_pb::AppListSpecifics::AppListItemType item_type) { |
| DCHECK(!base::ContainsKey(sync_items_, item_id)); |
| - SyncItem* sync_item = new SyncItem(item_id, item_type); |
| - sync_items_[item_id] = sync_item; |
| - return sync_item; |
| + sync_items_[item_id] = base::MakeUnique<SyncItem>(item_id, item_type); |
| + return sync_items_[item_id].get(); |
| } |
| void AppListSyncableService::DeleteSyncItemSpecifics( |
| @@ -973,13 +964,12 @@ void AppListSyncableService::DeleteSyncItemSpecifics( |
| return; |
| } |
| VLOG(2) << this << ": DeleteSyncItemSpecifics: " << item_id.substr(0, 8); |
| - SyncItemMap::iterator iter = sync_items_.find(item_id); |
| + auto iter = sync_items_.find(item_id); |
| if (iter == sync_items_.end()) |
| return; |
| sync_pb::AppListSpecifics::AppListItemType item_type = |
| iter->second->item_type; |
| VLOG(2) << this << " <- SYNC DELETE: " << iter->second->ToString(); |
| - delete iter->second; |
| sync_items_.erase(iter); |
| // Only delete apps from the model. Folders will be deleted when all |
| // children have been deleted. |
| @@ -1020,9 +1010,8 @@ syncer::StringOrdinal AppListSyncableService::GetOemFolderPos() { |
| if (!first_app_list_sync_) { |
| VLOG(1) << "Sync items exist, placing OEM folder at end."; |
| syncer::StringOrdinal last; |
| - for (SyncItemMap::iterator iter = sync_items_.begin(); |
| - iter != sync_items_.end(); ++iter) { |
| - SyncItem* sync_item = iter->second; |
| + for (auto iter = sync_items_.begin(); iter != sync_items_.end(); ++iter) { |
|
Nico
2016/09/22 15:56:11
same (?)
Avi (use Gerrit)
2016/09/22 19:17:17
Done.
|
| + SyncItem* sync_item = iter->second.get(); |
| if (sync_item->item_ordinal.IsValid() && |
| (!last.IsValid() || sync_item->item_ordinal.GreaterThan(last))) { |
| last = sync_item->item_ordinal; |