diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 07:48:23 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-08 07:48:23 +0000 |
commit | c08596702d2a16f21777c707db6641897fda5964 (patch) | |
tree | 05a192b585f9f63cd5d7b09f720cf657934109d2 /content/browser/debugger | |
parent | dd33a3dc4f6483334d8d32212c49305e7a882971 (diff) | |
download | chromium_src-c08596702d2a16f21777c707db6641897fda5964.zip chromium_src-c08596702d2a16f21777c707db6641897fda5964.tar.gz chromium_src-c08596702d2a16f21777c707db6641897fda5964.tar.bz2 |
content: Remove 16 exit time destructors and 15 static initializers.
BUG=101600,94925
TEST=none
TBR=ben
Review URL: http://codereview.chromium.org/8493016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108982 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/debugger')
6 files changed, 51 insertions, 35 deletions
diff --git a/content/browser/debugger/devtools_agent_host.h b/content/browser/debugger/devtools_agent_host.h index 3eb7a33..fe430dd 100644 --- a/content/browser/debugger/devtools_agent_host.h +++ b/content/browser/debugger/devtools_agent_host.h @@ -6,7 +6,6 @@ #define CONTENT_BROWSER_DEBUGGER_DEVTOOLS_AGENT_HOST_H_ #pragma once -#include <map> #include <string> #include "content/common/content_export.h" @@ -15,8 +14,6 @@ namespace IPC { class Message; } -typedef std::map<std::string, std::string> DevToolsRuntimeProperties; - // Describes interface for managing devtools agents from the browser process. class CONTENT_EXPORT DevToolsAgentHost { public: diff --git a/content/browser/debugger/devtools_client_host.cc b/content/browser/debugger/devtools_client_host.cc index 5e79723..3250dc8 100644 --- a/content/browser/debugger/devtools_client_host.cc +++ b/content/browser/debugger/devtools_client_host.cc @@ -4,17 +4,23 @@ #include <algorithm> +#include "base/lazy_instance.h" #include "base/logging.h" #include "content/browser/debugger/devtools_client_host.h" #include "content/browser/debugger/devtools_manager.h" -DevToolsClientHost::DevToolsClientHostList DevToolsClientHost::instances_; +typedef std::vector<DevToolsClientHost*> DevToolsClientHostList; +namespace { +base::LazyInstance<DevToolsClientHostList, + base::LeakyLazyInstanceTraits<DevToolsClientHostList> > + g_instances(base::LINKER_INITIALIZED); +} // namespace // static DevToolsClientHost* DevToolsClientHost::FindOwnerClientHost( RenderViewHost* client_rvh) { - for (DevToolsClientHostList::iterator it = instances_.begin(); - it != instances_.end(); ++it) { + for (DevToolsClientHostList::iterator it = g_instances.Get().begin(); + it != g_instances.Get().end(); ++it) { if ((*it)->GetClientRenderViewHost() == client_rvh) return *it; } @@ -22,11 +28,11 @@ DevToolsClientHost* DevToolsClientHost::FindOwnerClientHost( } DevToolsClientHost::~DevToolsClientHost() { - DevToolsClientHostList::iterator it = std::find(instances_.begin(), - instances_.end(), + DevToolsClientHostList::iterator it = std::find(g_instances.Get().begin(), + g_instances.Get().end(), this); - DCHECK(it != instances_.end()); - instances_.erase(it); + DCHECK(it != g_instances.Get().end()); + g_instances.Get().erase(it); } RenderViewHost* DevToolsClientHost::GetClientRenderViewHost() { @@ -34,7 +40,7 @@ RenderViewHost* DevToolsClientHost::GetClientRenderViewHost() { } DevToolsClientHost::DevToolsClientHost() : close_listener_(NULL) { - instances_.push_back(this); + g_instances.Get().push_back(this); } void DevToolsClientHost::ForwardToDevToolsAgent(const IPC::Message& message) { diff --git a/content/browser/debugger/devtools_client_host.h b/content/browser/debugger/devtools_client_host.h index f629818..16e4d89 100644 --- a/content/browser/debugger/devtools_client_host.h +++ b/content/browser/debugger/devtools_client_host.h @@ -71,8 +71,6 @@ class CONTENT_EXPORT DevToolsClientHost { private: CloseListener* close_listener_; - typedef std::vector<DevToolsClientHost*> DevToolsClientHostList; - static DevToolsClientHostList instances_; DISALLOW_COPY_AND_ASSIGN(DevToolsClientHost); }; diff --git a/content/browser/debugger/devtools_http_protocol_handler.cc b/content/browser/debugger/devtools_http_protocol_handler.cc index c16659c..a7c4730 100644 --- a/content/browser/debugger/devtools_http_protocol_handler.cc +++ b/content/browser/debugger/devtools_http_protocol_handler.cc @@ -8,6 +8,7 @@ #include "base/compiler_specific.h" #include "base/json/json_writer.h" +#include "base/lazy_instance.h" #include "base/logging.h" #include "base/message_loop_proxy.h" #include "base/string_number_conversions.h" @@ -92,16 +93,16 @@ class TabContentsIDHelper : public TabContentsObserver { public: static int GetID(TabContents* tab) { - TabContentsToIdMap::iterator it = tabcontents_to_id_.find(tab); - if (it != tabcontents_to_id_.end()) + TabContentsToIdMap::iterator it = tabcontents_to_id_.Get().find(tab); + if (it != tabcontents_to_id_.Get().end()) return it->second; TabContentsIDHelper* wrapper = new TabContentsIDHelper(tab); return wrapper->id_; } static TabContents* GetTabContents(int id) { - IdToTabContentsMap::iterator it = id_to_tabcontents_.find(id); - if (it != id_to_tabcontents_.end()) + IdToTabContentsMap::iterator it = id_to_tabcontents_.Get().find(id); + if (it != id_to_tabcontents_.Get().end()) return it->second; return NULL; } @@ -110,27 +111,37 @@ class TabContentsIDHelper : public TabContentsObserver { explicit TabContentsIDHelper(TabContents* tab) : TabContentsObserver(tab), id_(next_id++) { - id_to_tabcontents_[id_] = tab; - tabcontents_to_id_[tab] = id_; + id_to_tabcontents_.Get()[id_] = tab; + tabcontents_to_id_.Get()[tab] = id_; } virtual ~TabContentsIDHelper() {} virtual void TabContentsDestroyed(TabContents* tab) { - id_to_tabcontents_.erase(id_); - tabcontents_to_id_.erase(tab); + id_to_tabcontents_.Get().erase(id_); + tabcontents_to_id_.Get().erase(tab); delete this; } int id_; typedef std::map<int, TabContents*> IdToTabContentsMap; - static IdToTabContentsMap id_to_tabcontents_; + static base::LazyInstance<IdToTabContentsMap, + base::LeakyLazyInstanceTraits<IdToTabContentsMap> > + id_to_tabcontents_; typedef std::map<TabContents*, int> TabContentsToIdMap; - static TabContentsToIdMap tabcontents_to_id_; + static base::LazyInstance<TabContentsToIdMap, + base::LeakyLazyInstanceTraits<TabContentsToIdMap> > + tabcontents_to_id_; }; -TabContentsIDHelper::IdToTabContentsMap TabContentsIDHelper::id_to_tabcontents_; -TabContentsIDHelper::TabContentsToIdMap TabContentsIDHelper::tabcontents_to_id_; +base::LazyInstance< + TabContentsIDHelper::IdToTabContentsMap, + base::LeakyLazyInstanceTraits<TabContentsIDHelper::IdToTabContentsMap> > + TabContentsIDHelper::id_to_tabcontents_(base::LINKER_INITIALIZED); +base::LazyInstance< + TabContentsIDHelper::TabContentsToIdMap, + base::LeakyLazyInstanceTraits<TabContentsIDHelper::TabContentsToIdMap> > + TabContentsIDHelper::tabcontents_to_id_(base::LINKER_INITIALIZED); } // namespace diff --git a/content/browser/debugger/render_view_devtools_agent_host.cc b/content/browser/debugger/render_view_devtools_agent_host.cc index 5a49afa2..8985b67 100644 --- a/content/browser/debugger/render_view_devtools_agent_host.cc +++ b/content/browser/debugger/render_view_devtools_agent_host.cc @@ -5,6 +5,7 @@ #include "content/browser/debugger/render_view_devtools_agent_host.h" #include "base/basictypes.h" +#include "base/lazy_instance.h" #include "content/browser/debugger/devtools_manager.h" #include "content/browser/debugger/render_view_devtools_agent_host.h" #include "content/browser/renderer_host/render_process_host.h" @@ -16,12 +17,18 @@ #include "content/public/browser/notification_service.h" #include "content/public/browser/notification_types.h" -RenderViewDevToolsAgentHost::Instances RenderViewDevToolsAgentHost::instances_; +typedef std::map<RenderViewHost*, RenderViewDevToolsAgentHost*> Instances; + +namespace { +base::LazyInstance<Instances, + base::LeakyLazyInstanceTraits<Instances> > + g_instances(base::LINKER_INITIALIZED); +} // namespace DevToolsAgentHost* RenderViewDevToolsAgentHost::FindFor( RenderViewHost* rvh) { - Instances::iterator it = instances_.find(rvh); - if (it != instances_.end()) + Instances::iterator it = g_instances.Get().find(rvh); + if (it != g_instances.Get().end()) return it->second; return new RenderViewDevToolsAgentHost(rvh); } @@ -32,8 +39,8 @@ bool RenderViewDevToolsAgentHost::IsDebuggerAttached( if (!devtools_manager) return false; RenderViewHostDelegate* delegate = tab_contents; - for (Instances::iterator it = instances_.begin(); - it != instances_.end(); ++it) { + for (Instances::iterator it = g_instances.Get().begin(); + it != g_instances.Get().end(); ++it) { if (it->first->delegate() != delegate) continue; if (devtools_manager->GetDevToolsClientHostFor(it->second)) @@ -45,7 +52,7 @@ bool RenderViewDevToolsAgentHost::IsDebuggerAttached( RenderViewDevToolsAgentHost::RenderViewDevToolsAgentHost(RenderViewHost* rvh) : RenderViewHostObserver(rvh), render_view_host_(rvh) { - instances_[rvh] = this; + g_instances.Get()[rvh] = this; } void RenderViewDevToolsAgentHost::SendMessageToAgent(IPC::Message* msg) { @@ -66,7 +73,7 @@ int RenderViewDevToolsAgentHost::GetRenderProcessId() { } RenderViewDevToolsAgentHost::~RenderViewDevToolsAgentHost() { - instances_.erase(render_view_host_); + g_instances.Get().erase(render_view_host_); } void RenderViewDevToolsAgentHost::RenderViewHostDestroyed(RenderViewHost* rvh) { diff --git a/content/browser/debugger/render_view_devtools_agent_host.h b/content/browser/debugger/render_view_devtools_agent_host.h index 2124512..e741a86 100644 --- a/content/browser/debugger/render_view_devtools_agent_host.h +++ b/content/browser/debugger/render_view_devtools_agent_host.h @@ -42,9 +42,6 @@ class CONTENT_EXPORT RenderViewDevToolsAgentHost RenderViewHost* render_view_host_; - typedef std::map<RenderViewHost*, RenderViewDevToolsAgentHost*> Instances; - static Instances instances_; - DISALLOW_COPY_AND_ASSIGN(RenderViewDevToolsAgentHost); }; |