Index: content/browser/debugger/render_view_devtools_agent_host.cc |
diff --git a/content/browser/debugger/render_view_devtools_agent_host.cc b/content/browser/debugger/render_view_devtools_agent_host.cc |
index 5a49afa2841083f9e4f228814404f300f798d010..b7ed381453d03908b3a9461c5580e7cb61ae7350 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> > |
+ instances_(base::LINKER_INITIALIZED); |
Mark Mentovai
2011/11/07 22:34:15
This should not be named instances_ now.
Nico
2011/11/07 23:29:21
Done.
|
+} // namespace |
DevToolsAgentHost* RenderViewDevToolsAgentHost::FindFor( |
RenderViewHost* rvh) { |
- Instances::iterator it = instances_.find(rvh); |
- if (it != instances_.end()) |
+ Instances::iterator it = instances_.Get().find(rvh); |
+ if (it != 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 = instances_.Get().begin(); |
+ it != 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; |
+ instances_.Get()[rvh] = this; |
} |
void RenderViewDevToolsAgentHost::SendMessageToAgent(IPC::Message* msg) { |
@@ -66,7 +73,7 @@ int RenderViewDevToolsAgentHost::GetRenderProcessId() { |
} |
RenderViewDevToolsAgentHost::~RenderViewDevToolsAgentHost() { |
- instances_.erase(render_view_host_); |
+ instances_.Get().erase(render_view_host_); |
} |
void RenderViewDevToolsAgentHost::RenderViewHostDestroyed(RenderViewHost* rvh) { |