Chromium Code Reviews| Index: Source/core/dom/DocumentMarkerController.h |
| diff --git a/Source/core/dom/DocumentMarkerController.h b/Source/core/dom/DocumentMarkerController.h |
| index 34fe66c018e786c445b90fcbb74e9dd1dc52053e..83b1178de3a9400b447feaac2ea2be48934e7498 100644 |
| --- a/Source/core/dom/DocumentMarkerController.h |
| +++ b/Source/core/dom/DocumentMarkerController.h |
| @@ -42,12 +42,11 @@ class Node; |
| class Range; |
| class RenderedDocumentMarker; |
| -class DocumentMarkerController FINAL : public NoBaseWillBeGarbageCollectedFinalized<DocumentMarkerController> { |
| +class DocumentMarkerController FINAL : public NoBaseWillBeGarbageCollected<DocumentMarkerController> { |
| WTF_MAKE_NONCOPYABLE(DocumentMarkerController); WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
| public: |
| DocumentMarkerController(); |
| - ~DocumentMarkerController(); |
|
haraken
2014/05/19 07:13:20
You can use DEFINE_EMPTY_VIRTUAL_DESTRUCTOR_WILL_B
Erik Corry
2014/05/19 07:52:11
Not writing anything at all seems better though.
Erik Corry
2014/05/20 08:40:37
I put this back after our offline discussion this
|
| void clear(); |
| void addMarker(Range*, DocumentMarker::MarkerType); |
| @@ -75,9 +74,9 @@ public: |
| void setMarkersActive(Node*, unsigned startOffset, unsigned endOffset, bool); |
| DocumentMarker* markerContainingPoint(const LayoutPoint&, DocumentMarker::MarkerType); |
| - Vector<DocumentMarker*> markersFor(Node*, DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
| - Vector<DocumentMarker*> markersInRange(Range*, DocumentMarker::MarkerTypes); |
| - Vector<DocumentMarker*> markers(); |
| + WillBeHeapVector<DocumentMarker*> markersFor(Node*, DocumentMarker::MarkerTypes = DocumentMarker::AllMarkers()); |
|
haraken
2014/05/19 07:13:20
Let's use WillBeHeapVector<Member<DocumentMarker>>
Erik Corry
2014/05/19 07:52:11
DocumentMarker is not on the heap.
|
| + WillBeHeapVector<DocumentMarker*> markersInRange(Range*, DocumentMarker::MarkerTypes); |
| + WillBeHeapVector<DocumentMarker*> markers(); |
| Vector<IntRect> renderedRectsForMarkers(DocumentMarker::MarkerType); |
| void trace(Visitor*); |
| @@ -89,9 +88,9 @@ public: |
| private: |
| void addMarker(Node*, const DocumentMarker&); |
| - typedef Vector<RenderedDocumentMarker> MarkerList; |
| - typedef Vector<OwnPtr<MarkerList>, DocumentMarker::MarkerTypeIndexesCount> MarkerLists; |
| - typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<const Node>, OwnPtr<MarkerLists> > MarkerMap; |
| + typedef WillBeHeapVector<RenderedDocumentMarker> MarkerList; |
|
sof
2014/05/19 07:05:24
Clarifying Q: DocumentMarker objects contain a Ref
Erik Corry
2014/05/19 07:52:11
Yes, SimpleClassVectorTraits are allowed RefPtrs a
|
| + typedef WillBeHeapVector<OwnPtrWillBeMember<MarkerList>, DocumentMarker::MarkerTypeIndexesCount> MarkerLists; |
| + typedef WillBeHeapHashMap<RawPtrWillBeWeakMember<const Node>, OwnPtrWillBeMember<MarkerLists> > MarkerMap; |
| void mergeOverlapping(MarkerList*, DocumentMarker&); |
| bool possiblyHasMarkers(DocumentMarker::MarkerTypes); |
| void removeMarkersFromList(MarkerMap::iterator, DocumentMarker::MarkerTypes); |