diff options
| author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 20:13:53 +0000 |
|---|---|---|
| committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-17 20:13:53 +0000 |
| commit | 9de09f8474427fe1341201b946d9afe20ab01b07 (patch) | |
| tree | f0ac3acf7bdba7a3259124908d627489a99f44da /chrome/browser/renderer_host/render_process_host.h | |
| parent | 6b2aedb4e7f4a62a74df55b8126a2f4ed6793760 (diff) | |
| download | chromium_src-9de09f8474427fe1341201b946d9afe20ab01b07.zip chromium_src-9de09f8474427fe1341201b946d9afe20ab01b07.tar.gz chromium_src-9de09f8474427fe1341201b946d9afe20ab01b07.tar.bz2 | |
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
Diffstat (limited to 'chrome/browser/renderer_host/render_process_host.h')
| -rw-r--r-- | chrome/browser/renderer_host/render_process_host.h | 15 |
1 files changed, 5 insertions, 10 deletions
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<RenderProcessHost>::const_iterator iterator; + typedef IDMap<RenderProcessHost>::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<IPC::Channel::Listener>::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 |
