From 9de09f8474427fe1341201b946d9afe20ab01b07 Mon Sep 17 00:00:00 2001 From: "phajdan.jr@chromium.org" Date: Mon, 17 Aug 2009 20:13:53 +0000 Subject: Refactor IDMap to support safe removing of elements during iteration. TEST=Covered by unit_tests and other automated tests. http://crbug.com/19202 Review URL: http://codereview.chromium.org/164518 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23572 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/renderer_host/render_process_host.h | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'chrome/browser/renderer_host/render_process_host.h') diff --git a/chrome/browser/renderer_host/render_process_host.h b/chrome/browser/renderer_host/render_process_host.h index aee189c..c906235 100644 --- a/chrome/browser/renderer_host/render_process_host.h +++ b/chrome/browser/renderer_host/render_process_host.h @@ -28,7 +28,7 @@ struct ViewMsg_ClosePage_Params; class RenderProcessHost : public IPC::Channel::Sender, public IPC::Channel::Listener { public: - typedef IDMap::const_iterator iterator; + typedef IDMap::iterator iterator; // We classify renderers according to their highest privilege, and try // to group pages into renderers with similar privileges. @@ -83,11 +83,9 @@ class RenderProcessHost : public IPC::Channel::Sender, // Allows iteration over this RenderProcessHost's RenderViewHost listeners. // Use from UI thread only. typedef IDMap::const_iterator listeners_iterator; - listeners_iterator listeners_begin() { - return listeners_.begin(); - } - listeners_iterator listeners_end() { - return listeners_.end(); + + listeners_iterator ListenersIterator() { + return listeners_iterator(&listeners_); } IPC::Channel::Listener* GetListenerByID(int routing_id) { @@ -195,10 +193,7 @@ class RenderProcessHost : public IPC::Channel::Sender, // Allows iteration over all the RenderProcessHosts in the browser. Note // that each host may not be active, and therefore may have NULL channels. - // This is just a standard STL iterator, so it is not valid if the list - // of RenderProcessHosts changes between iterations. - static iterator begin(); - static iterator end(); + static iterator AllHostsIterator(); static size_t size(); // TODO(brettw) rename this, it's very unclear. // Returns the RenderProcessHost given its ID. Returns NULL if the ID does -- cgit v1.1