OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/shared_worker/worker_document_set.h" | 5 #include "content/browser/shared_worker/worker_document_set.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 | 8 |
9 namespace content { | 9 namespace content { |
10 | 10 |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
57 // bump the iterator beyond the item being removed before calling erase. | 57 // bump the iterator beyond the item being removed before calling erase. |
58 if (i->filter() == parent) { | 58 if (i->filter() == parent) { |
59 DocumentInfoSet::iterator item_to_delete = i++; | 59 DocumentInfoSet::iterator item_to_delete = i++; |
60 document_set_.erase(item_to_delete); | 60 document_set_.erase(item_to_delete); |
61 } else { | 61 } else { |
62 ++i; | 62 ++i; |
63 } | 63 } |
64 } | 64 } |
65 } | 65 } |
66 | 66 |
67 void WorkerDocumentSet::RemoveRenderFrame(int render_process_id, | |
68 int render_frame_id) { | |
69 for (DocumentInfoSet::iterator i = document_set_.begin(); | |
70 i != document_set_.end();) { | |
71 // Note this idiom is somewhat tricky - calling document_set_.erase(iter) | |
72 // invalidates any iterators that point to the element being removed, so | |
73 // bump the iterator beyond the item being removed before calling erase. | |
74 if (i->render_process_id() == render_process_id && | |
75 i->render_frame_id() == render_frame_id) { | |
76 DocumentInfoSet::iterator item_to_delete = i++; | |
77 document_set_.erase(item_to_delete); | |
no sievers
2016/08/24 23:44:37
same as: document_set_.erase(i++)
horo
2016/08/25 00:03:29
Done.
| |
78 } else { | |
79 ++i; | |
80 } | |
81 } | |
82 } | |
83 | |
67 WorkerDocumentSet::DocumentInfo::DocumentInfo( | 84 WorkerDocumentSet::DocumentInfo::DocumentInfo( |
68 BrowserMessageFilter* filter, unsigned long long document_id, | 85 BrowserMessageFilter* filter, unsigned long long document_id, |
69 int render_process_id, int render_frame_id) | 86 int render_process_id, int render_frame_id) |
70 : filter_(filter), | 87 : filter_(filter), |
71 document_id_(document_id), | 88 document_id_(document_id), |
72 render_process_id_(render_process_id), | 89 render_process_id_(render_process_id), |
73 render_frame_id_(render_frame_id) { | 90 render_frame_id_(render_frame_id) { |
74 } | 91 } |
75 | 92 |
76 WorkerDocumentSet::~WorkerDocumentSet() { | 93 WorkerDocumentSet::~WorkerDocumentSet() { |
77 } | 94 } |
78 | 95 |
79 } // namespace content | 96 } // namespace content |
OLD | NEW |