| Index: Source/web/TextFinder.h
|
| diff --git a/Source/web/TextFinder.h b/Source/web/TextFinder.h
|
| index a3b18ec177b16638adb5e0d5377a416d9a688da8..f71702f06e1837556d3d5f52871f4d862dd955d6 100644
|
| --- a/Source/web/TextFinder.h
|
| +++ b/Source/web/TextFinder.h
|
| @@ -34,6 +34,7 @@
|
| #include "WebFindOptions.h"
|
| #include "core/editing/FindOptions.h"
|
| #include "platform/geometry/FloatRect.h"
|
| +#include "platform/heap/Handle.h"
|
| #include "public/platform/WebFloatPoint.h"
|
| #include "public/platform/WebFloatRect.h"
|
| #include "public/platform/WebRect.h"
|
| @@ -89,12 +90,10 @@ public:
|
|
|
| ~TextFinder();
|
|
|
| -private:
|
| - class DeferredScopeStringMatches;
|
| - friend class DeferredScopeStringMatches;
|
| -
|
| - struct FindMatch {
|
| - RefPtr<WebCore::Range> m_range;
|
| + class FindMatch {
|
| + ALLOW_ONLY_INLINE_ALLOCATION();
|
| + public:
|
| + RefPtrWillBeMember<WebCore::Range> m_range;
|
|
|
| // 1-based index within this frame.
|
| int m_ordinal;
|
| @@ -103,9 +102,15 @@ private:
|
| // Lazily calculated by updateFindMatchRects.
|
| WebCore::FloatRect m_rect;
|
|
|
| - FindMatch(PassRefPtr<WebCore::Range>, int ordinal);
|
| + FindMatch(PassRefPtrWillBeRawPtr<WebCore::Range>, int ordinal);
|
| +
|
| + void trace(WebCore::Visitor*);
|
| };
|
|
|
| +private:
|
| + class DeferredScopeStringMatches;
|
| + friend class DeferredScopeStringMatches;
|
| +
|
| explicit TextFinder(WebFrameImpl& ownerFrame);
|
|
|
| // Notifies the delegate about a new selection rect.
|
| @@ -192,14 +197,14 @@ private:
|
| WebFrameImpl* m_currentActiveMatchFrame;
|
|
|
| // The range of the active match for the current frame.
|
| - RefPtr<WebCore::Range> m_activeMatch;
|
| + RefPtrWillBePersistent<WebCore::Range> m_activeMatch;
|
|
|
| // The index of the active match for the current frame.
|
| int m_activeMatchIndexInCurrentFrame;
|
|
|
| // The scoping effort can time out and we need to keep track of where we
|
| // ended our last search so we can continue from where we left of.
|
| - RefPtr<WebCore::Range> m_resumeScopingFromRange;
|
| + RefPtrWillBePersistent<WebCore::Range> m_resumeScopingFromRange;
|
|
|
| // Keeps track of the last string this frame searched for. This is used for
|
| // short-circuiting searches in the following scenarios: When a frame has
|
| @@ -238,7 +243,7 @@ private:
|
| int m_findMatchMarkersVersion;
|
|
|
| // Local cache of the find match markers currently displayed for this frame.
|
| - Vector<FindMatch> m_findMatchesCache;
|
| + WillBePersistentHeapVector<FindMatch> m_findMatchesCache;
|
|
|
| // Contents size when find-in-page match rects were last computed for this
|
| // frame's cache.
|
| @@ -263,4 +268,10 @@ private:
|
|
|
| } // namespace blink
|
|
|
| +namespace WTF {
|
| +template <> struct VectorTraits<blink::TextFinder::FindMatch> : VectorTraitsBase<blink::TextFinder::FindMatch> {
|
| + static const bool canInitializeWithMemset = true;
|
| +};
|
| +}
|
| +
|
| #endif
|
|
|