summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/render_process_host.cc
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-17 20:13:53 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-17 20:13:53 +0000
commit9de09f8474427fe1341201b946d9afe20ab01b07 (patch)
treef0ac3acf7bdba7a3259124908d627489a99f44da /chrome/browser/renderer_host/render_process_host.cc
parent6b2aedb4e7f4a62a74df55b8126a2f4ed6793760 (diff)
downloadchromium_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.cc')
-rw-r--r--chrome/browser/renderer_host/render_process_host.cc18
1 files changed, 8 insertions, 10 deletions
diff --git a/chrome/browser/renderer_host/render_process_host.cc b/chrome/browser/renderer_host/render_process_host.cc
index 090ed91..4f0cbc0 100644
--- a/chrome/browser/renderer_host/render_process_host.cc
+++ b/chrome/browser/renderer_host/render_process_host.cc
@@ -125,13 +125,8 @@ void RenderProcessHost::UpdateMaxPageID(int32 page_id) {
}
// static
-RenderProcessHost::iterator RenderProcessHost::begin() {
- return all_hosts.begin();
-}
-
-// static
-RenderProcessHost::iterator RenderProcessHost::end() {
- return all_hosts.end();
+RenderProcessHost::iterator RenderProcessHost::AllHostsIterator() {
+ return iterator(&all_hosts);
}
// static
@@ -165,10 +160,13 @@ RenderProcessHost* RenderProcessHost::GetExistingProcessHost(Profile* profile,
std::vector<RenderProcessHost*> suitable_renderers;
suitable_renderers.reserve(size());
- for (iterator iter = begin(); iter != end(); ++iter) {
+ iterator iter(AllHostsIterator());
+ while (!iter.IsAtEnd()) {
if (run_renderer_in_process() ||
- IsSuitableHost(iter->second, profile, type))
- suitable_renderers.push_back(iter->second);
+ IsSuitableHost(iter.GetCurrentValue(), profile, type))
+ suitable_renderers.push_back(iter.GetCurrentValue());
+
+ iter.Advance();
}
// Now pick a random suitable renderer, if we have any.