Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Unified Diff: extensions/browser/api/api_resource_manager.h

Issue 587453005: Cleanup: Remove some std::map::operator[] usage in ApiResourceManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_connection.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/browser/api/api_resource_manager.h
diff --git a/extensions/browser/api/api_resource_manager.h b/extensions/browser/api/api_resource_manager.h
index e8b5d3340c7a8648b2d5cf7054c8d3d5a50adec2..6791c1b485439184f5ce2181981b052356f090f2 100644
--- a/extensions/browser/api/api_resource_manager.h
+++ b/extensions/browser/api/api_resource_manager.h
@@ -8,7 +8,6 @@
#include <map>
#include "base/containers/hash_tables.h"
-#include "base/lazy_instance.h"
#include "base/memory/linked_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/scoped_observer.h"
@@ -230,12 +229,13 @@ class ApiResourceManager : public BrowserContextKeyedAPI,
api_resource_map_[id] = resource_ptr;
const std::string& extension_id = api_resource->owner_extension_id();
- if (extension_resource_map_.find(extension_id) ==
- extension_resource_map_.end()) {
- extension_resource_map_[extension_id] = base::hash_set<int>();
+ ExtensionToResourceMap::iterator it =
+ extension_resource_map_.find(extension_id);
+ if (it == extension_resource_map_.end()) {
+ it = extension_resource_map_.insert(
+ std::make_pair(extension_id, base::hash_set<int>())).first;
}
- extension_resource_map_[extension_id].insert(id);
-
+ it->second.insert(id);
return id;
}
return 0;
@@ -243,10 +243,10 @@ class ApiResourceManager : public BrowserContextKeyedAPI,
void Remove(const std::string& extension_id, int api_resource_id) {
DCHECK(ThreadingTraits::IsCalledOnValidThread());
- if (GetOwnedResource(extension_id, api_resource_id) != NULL) {
- DCHECK(extension_resource_map_.find(extension_id) !=
Lei Zhang 2014/09/19 05:53:05 std::map::operator[] has the side effect of creati
Ken Rockot(use gerrit already) 2014/09/19 16:37:06 Ah. Yeah. This is less a problem with operator[] a
- extension_resource_map_.end());
- extension_resource_map_[extension_id].erase(api_resource_id);
+ if (GetOwnedResource(extension_id, api_resource_id)) {
+ ExtensionToResourceMap::iterator it =
+ extension_resource_map_.find(extension_id);
+ it->second.erase(api_resource_id);
api_resource_map_.erase(api_resource_id);
}
}
@@ -325,11 +325,11 @@ class ApiResourceManager : public BrowserContextKeyedAPI,
base::hash_set<int>* GetOwnedResourceIds(const std::string& extension_id) {
DCHECK(ThreadingTraits::IsCalledOnValidThread());
- if (extension_resource_map_.find(extension_id) ==
- extension_resource_map_.end())
+ ExtensionToResourceMap::iterator it =
+ extension_resource_map_.find(extension_id);
+ if (it == extension_resource_map_.end())
return NULL;
-
- return &extension_resource_map_[extension_id];
+ return &(it->second);
}
void CleanupResourcesFromUnloadedExtension(
@@ -346,14 +346,14 @@ class ApiResourceManager : public BrowserContextKeyedAPI,
bool remove_all) {
DCHECK(ThreadingTraits::IsCalledOnValidThread());
- if (extension_resource_map_.find(extension_id) ==
- extension_resource_map_.end()) {
+ ExtensionToResourceMap::iterator it =
+ extension_resource_map_.find(extension_id);
+ if (it == extension_resource_map_.end())
return;
- }
// Remove all resources, or the non persistent ones only if |remove_all|
// is false.
- base::hash_set<int>& resource_ids = extension_resource_map_[extension_id];
+ base::hash_set<int>& resource_ids = it->second;
for (base::hash_set<int>::iterator it = resource_ids.begin();
it != resource_ids.end();) {
bool erase = false;
« no previous file with comments | « no previous file | extensions/browser/api/bluetooth_low_energy/bluetooth_low_energy_connection.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698