void DocumentMarkerController::removeMarkers(Node* node, DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); MarkerMap::iterator iterator = m_markers.find(node); if (iterator != m_markers.end()) removeMarkersFromList(iterator, markerTypes); }
void DocumentMarkerController::removeMarkers(DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); // outer loop: process each markered node in the document MarkerMap markerMapCopy = m_markers; MarkerMap::iterator end = markerMapCopy.end(); for (MarkerMap::iterator i = markerMapCopy.begin(); i != end; ++i) removeMarkersFromList(i->first.get(), i->second, markerTypes); m_possiblyExistingMarkerTypes.remove(markerTypes); }
void DocumentMarkerController::removeMarkers(DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); Vector<RefPtr<Node>> nodesWithMarkers; copyKeysToVector(m_markers, nodesWithMarkers); for (auto& node : nodesWithMarkers) { auto iterator = m_markers.find(node); if (iterator != m_markers.end()) removeMarkersFromList(iterator, markerTypes); } m_possiblyExistingMarkerTypes.remove(markerTypes); }
void DocumentMarkerController::removeMarkers(DocumentMarker::MarkerTypes markerTypes) { if (!possiblyHasMarkers(markerTypes)) return; ASSERT(!m_markers.isEmpty()); Vector<RefPtr<Node>> nodesWithMarkers; copyKeysToVector(m_markers, nodesWithMarkers); unsigned size = nodesWithMarkers.size(); for (unsigned i = 0; i < size; ++i) { MarkerMap::iterator iterator = m_markers.find(nodesWithMarkers[i]); if (iterator != m_markers.end()) removeMarkersFromList(iterator, markerTypes); } m_possiblyExistingMarkerTypes.remove(markerTypes); }