Modified: trunk/Source/WebCore/ChangeLog (212859 => 212860)
--- trunk/Source/WebCore/ChangeLog 2017-02-22 23:44:53 UTC (rev 212859)
+++ trunk/Source/WebCore/ChangeLog 2017-02-22 23:55:34 UTC (rev 212860)
@@ -1,3 +1,22 @@
+2017-02-22 Antti Koivisto <[email protected]>
+
+ Replace SimpleLineLayout::Range by WTF::IteratorRange
+ https://bugs.webkit.org/show_bug.cgi?id=168742
+
+ Reviewed by Zalan Bujtas.
+
+ Kill a redundant custom type.
+
+ * rendering/SimpleLineLayoutResolver.cpp:
+ (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
+ (WebCore::SimpleLineLayout::RunResolver::rangeForRenderer):
+ (WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets):
+ * rendering/SimpleLineLayoutResolver.h:
+ (WebCore::SimpleLineLayout::LineResolver::rangeForRect):
+ (WebCore::SimpleLineLayout::Range::Range): Deleted.
+ (WebCore::SimpleLineLayout::Range::begin): Deleted.
+ (WebCore::SimpleLineLayout::Range::end): Deleted.
+
2017-02-22 Simon Fraser <[email protected]>
Add the Web Authentication API as "Under Consideration".
Modified: trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp (212859 => 212860)
--- trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp 2017-02-22 23:44:53 UTC (rev 212859)
+++ trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp 2017-02-22 23:55:34 UTC (rev 212860)
@@ -145,10 +145,10 @@
return std::min<unsigned>(y / m_lineHeight, m_layout.lineCount() - 1);
}
-Range<RunResolver::Iterator> RunResolver::rangeForRect(const LayoutRect& rect) const
+WTF::IteratorRange<RunResolver::Iterator> RunResolver::rangeForRect(const LayoutRect& rect) const
{
if (!m_lineHeight)
- return Range<Iterator>(begin(), end());
+ return { begin(), end() };
unsigned firstLine = lineIndexForHeight(rect.y(), IndexType::First);
unsigned lastLine = std::max(firstLine, lineIndexForHeight(rect.maxY(), IndexType::Last));
@@ -155,17 +155,17 @@
auto rangeBegin = begin().advanceLines(firstLine);
if (rangeBegin == end())
- return Range<Iterator>(end(), end());
+ return { end(), end() };
auto rangeEnd = rangeBegin;
ASSERT(lastLine >= firstLine);
rangeEnd.advanceLines(lastLine - firstLine + 1);
- return Range<Iterator>(rangeBegin, rangeEnd);
+ return { rangeBegin, rangeEnd };
}
-Range<RunResolver::Iterator> RunResolver::rangeForRenderer(const RenderObject& renderer) const
+WTF::IteratorRange<RunResolver::Iterator> RunResolver::rangeForRenderer(const RenderObject& renderer) const
{
if (begin() == end())
- return Range<Iterator>(end(), end());
+ return { end(), end() };
FlowContents::Iterator segment = m_flowContents.begin();
auto run = begin();
ASSERT(segment->start <= (*run).start());
@@ -183,7 +183,7 @@
// Do we actually have a run for this renderer?
// Collapsed whitespace with dedicated renderer could end up with no run at all.
if (run == end() || (segment->start != segment->end && segment->end <= (*run).start()))
- return Range<Iterator>(end(), end());
+ return { end(), end() };
auto rangeBegin = run;
// Move beyond the end of the segment.
@@ -192,7 +192,7 @@
// Special case when segment == run.
if (run == rangeBegin)
++run;
- return Range<Iterator>(rangeBegin, run);
+ return { rangeBegin, run };
}
RunResolver::Iterator RunResolver::runForPoint(const LayoutPoint& point) const
@@ -219,7 +219,7 @@
return --it;
}
-Range<RunResolver::Iterator> RunResolver::rangeForRendererWithOffsets(const RenderObject& renderer, unsigned startOffset, unsigned endOffset) const
+WTF::IteratorRange<RunResolver::Iterator> RunResolver::rangeForRendererWithOffsets(const RenderObject& renderer, unsigned startOffset, unsigned endOffset) const
{
ASSERT(startOffset <= endOffset);
auto range = rangeForRenderer(renderer);
Modified: trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h (212859 => 212860)
--- trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h 2017-02-22 23:44:53 UTC (rev 212859)
+++ trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.h 2017-02-22 23:55:34 UTC (rev 212860)
@@ -29,24 +29,12 @@
#include "RenderBlockFlow.h"
#include "SimpleLineLayoutFlowContents.h"
#include "SimpleLineLayoutFunctions.h"
+#include <wtf/IteratorRange.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
namespace SimpleLineLayout {
-template <class IteratorType>
-class Range {
-public:
- Range(IteratorType begin, IteratorType end) : m_begin(begin), m_end(end) { }
-
- IteratorType begin() const { return m_begin; }
- IteratorType end() const { return m_end; }
-
-private:
- IteratorType m_begin;
- IteratorType m_end;
-};
-
class RunResolver {
WTF_MAKE_FAST_ALLOCATED;
public:
@@ -113,10 +101,10 @@
Iterator begin() const;
Iterator end() const;
- Range<Iterator> rangeForRect(const LayoutRect&) const;
- Range<Iterator> rangeForRenderer(const RenderObject&) const;
+ WTF::IteratorRange<Iterator> rangeForRect(const LayoutRect&) const;
+ WTF::IteratorRange<Iterator> rangeForRenderer(const RenderObject&) const;
Iterator runForPoint(const LayoutPoint&) const;
- Range<Iterator> rangeForRendererWithOffsets(const RenderObject&, unsigned start, unsigned end) const;
+ WTF::IteratorRange<Iterator> rangeForRendererWithOffsets(const RenderObject&, unsigned start, unsigned end) const;
private:
enum class IndexType { First, Last };
@@ -158,7 +146,7 @@
Iterator begin() const;
Iterator end() const;
- Range<Iterator> rangeForRect(const LayoutRect&) const;
+ WTF::IteratorRange<Iterator> rangeForRect(const LayoutRect&) const;
private:
RunResolver m_runResolver;
@@ -296,10 +284,10 @@
return Iterator(m_runResolver.end());
}
-inline Range<LineResolver::Iterator> LineResolver::rangeForRect(const LayoutRect& rect) const
+inline WTF::IteratorRange<LineResolver::Iterator> LineResolver::rangeForRect(const LayoutRect& rect) const
{
auto runRange = m_runResolver.rangeForRect(rect);
- return Range<Iterator>(Iterator(runRange.begin()), Iterator(runRange.end()));
+ return { Iterator(runRange.begin()), Iterator(runRange.end()) };
}
inline RunResolver runResolver(const RenderBlockFlow& flow, const Layout& layout)