Index: chrome/browser/task_manager/task_manager.cc |
diff --git a/chrome/browser/task_manager/task_manager.cc b/chrome/browser/task_manager/task_manager.cc |
index f8834a1112ab30d3a4463bec17884a414340edac..f9e6c77daa3ed984508a89535fc906985229fd47 100644 |
--- a/chrome/browser/task_manager/task_manager.cc |
+++ b/chrome/browser/task_manager/task_manager.cc |
@@ -748,16 +748,16 @@ bool TaskManagerModel::IsResourceFirstInGroup(int index) const { |
Resource* resource = GetResource(index); |
GroupMap::const_iterator iter = group_map_.find(resource->GetProcess()); |
DCHECK(iter != group_map_.end()); |
- const ResourceList* group = iter->second; |
- return ((*group)[0] == resource); |
+ const ResourceList& group = iter->second; |
+ return (group[0] == resource); |
} |
bool TaskManagerModel::IsResourceLastInGroup(int index) const { |
Resource* resource = GetResource(index); |
GroupMap::const_iterator iter = group_map_.find(resource->GetProcess()); |
DCHECK(iter != group_map_.end()); |
- const ResourceList* group = iter->second; |
- return (group->back() == resource); |
+ const ResourceList& group = iter->second; |
+ return (group.back() == resource); |
} |
gfx::ImageSkia TaskManagerModel::GetResourceIcon(int index) const { |
@@ -776,14 +776,13 @@ TaskManagerModel::GetGroupRangeForResource(int index) const { |
GroupMap::const_iterator group_iter = |
group_map_.find(resource->GetProcess()); |
DCHECK(group_iter != group_map_.end()); |
- ResourceList* group = group_iter->second; |
- DCHECK(group); |
- if (group->size() == 1) { |
+ const ResourceList& group = group_iter->second; |
+ if (group.size() == 1) { |
return std::make_pair(index, 1); |
} else { |
for (int i = index; i >= 0; --i) { |
- if (GetResource(i) == (*group)[0]) |
- return std::make_pair(i, group->size()); |
+ if (GetResource(i) == group[0]) |
+ return std::make_pair(i, group.size()); |
} |
NOTREACHED(); |
return std::make_pair(-1, -1); |
@@ -975,19 +974,16 @@ WebContents* TaskManagerModel::GetResourceWebContents(int index) const { |
void TaskManagerModel::AddResource(Resource* resource) { |
base::ProcessHandle process = resource->GetProcess(); |
- ResourceList* group_entries = NULL; |
- GroupMap::const_iterator group_iter = group_map_.find(process); |
+ GroupMap::iterator group_iter = group_map_.find(process); |
int new_entry_index = 0; |
if (group_iter == group_map_.end()) { |
- group_entries = new ResourceList(); |
- group_map_[process] = group_entries; |
- group_entries->push_back(resource); |
+ group_map_.insert(make_pair(process, ResourceList(1, resource))); |
// Not part of a group, just put at the end of the list. |
resources_.push_back(resource); |
new_entry_index = static_cast<int>(resources_.size() - 1); |
} else { |
- group_entries = group_iter->second; |
+ ResourceList* group_entries = &(group_iter->second); |
group_entries->push_back(resource); |
// Insert the new entry right after the last entry of its group. |
@@ -1024,19 +1020,18 @@ void TaskManagerModel::RemoveResource(Resource* resource) { |
// Find the associated group. |
GroupMap::iterator group_iter = group_map_.find(process); |
DCHECK(group_iter != group_map_.end()); |
- ResourceList* group_entries = group_iter->second; |
+ ResourceList& group_entries = group_iter->second; |
// Remove the entry from the group map. |
- ResourceList::iterator iter = std::find(group_entries->begin(), |
- group_entries->end(), |
+ ResourceList::iterator iter = std::find(group_entries.begin(), |
+ group_entries.end(), |
resource); |
- DCHECK(iter != group_entries->end()); |
- group_entries->erase(iter); |
+ DCHECK(iter != group_entries.end()); |
+ group_entries.erase(iter); |
// If there are no more entries for that process, do the clean-up. |
- if (group_entries->empty()) { |
- delete group_entries; |
- group_map_.erase(process); |
+ if (group_entries.empty()) { |
+ group_map_.erase(group_iter); |
// Nobody is using this process, we don't need the process metrics anymore. |
MetricsMap::iterator pm_iter = metrics_map_.find(process); |
@@ -1152,7 +1147,7 @@ void TaskManagerModel::Clear() { |
resources_.clear(); |
// Clear the groups. |
- STLDeleteValues(&group_map_); |
+ group_map_.clear(); |
// Clear the process related info. |
STLDeleteValues(&metrics_map_); |