summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderInline.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderInline.cpp')
-rw-r--r--Source/WebCore/rendering/RenderInline.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/Source/WebCore/rendering/RenderInline.cpp b/Source/WebCore/rendering/RenderInline.cpp
index c4e142392..104c56f5d 100644
--- a/Source/WebCore/rendering/RenderInline.cpp
+++ b/Source/WebCore/rendering/RenderInline.cpp
@@ -533,7 +533,7 @@ void RenderInline::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
}
template<typename GeneratorContext>
-void RenderInline::generateLineBoxRects(GeneratorContext yield) const
+void RenderInline::generateLineBoxRects(GeneratorContext& yield) const
{
if (!alwaysCreateLineBoxes())
generateCulledLineBoxRects(yield, this);
@@ -545,7 +545,7 @@ void RenderInline::generateLineBoxRects(GeneratorContext yield) const
}
template<typename GeneratorContext>
-void RenderInline::generateCulledLineBoxRects(GeneratorContext yield, const RenderInline* container) const
+void RenderInline::generateCulledLineBoxRects(GeneratorContext& yield, const RenderInline* container) const
{
if (!culledInlineFirstLineBox()) {
yield(FloatRect());
@@ -631,7 +631,8 @@ private:
void RenderInline::absoluteRects(Vector<IntRect>& rects, const LayoutPoint& accumulatedOffset) const
{
- generateLineBoxRects(AbsoluteRectsGeneratorContext(rects, accumulatedOffset));
+ AbsoluteRectsGeneratorContext context(rects, accumulatedOffset);
+ generateLineBoxRects(context);
if (continuation()) {
if (continuation()->isBox()) {
@@ -647,9 +648,8 @@ namespace {
class AbsoluteQuadsGeneratorContext {
public:
- AbsoluteQuadsGeneratorContext(const RenderInline* renderer, Vector<FloatQuad>& quads, bool* wasFixed)
+ AbsoluteQuadsGeneratorContext(const RenderInline* renderer, Vector<FloatQuad>& quads)
: m_quads(quads)
- , m_wasFixed(wasFixed)
, m_geometryMap()
{
m_geometryMap.pushMappingsToAncestor(renderer, 0);
@@ -661,7 +661,6 @@ public:
}
private:
Vector<FloatQuad>& m_quads;
- bool* m_wasFixed;
RenderGeometryMap m_geometryMap;
};
@@ -669,7 +668,8 @@ private:
void RenderInline::absoluteQuads(Vector<FloatQuad>& quads, bool* wasFixed) const
{
- generateLineBoxRects(AbsoluteQuadsGeneratorContext(this, quads, wasFixed));
+ AbsoluteQuadsGeneratorContext context(this, quads);
+ generateLineBoxRects(context);
if (continuation())
continuation()->absoluteQuads(quads, wasFixed);
@@ -804,7 +804,8 @@ IntRect RenderInline::linesBoundingBox() const
if (!alwaysCreateLineBoxes()) {
ASSERT(!firstLineBox());
FloatRect floatResult;
- generateCulledLineBoxRects(LinesBoundingBoxGeneratorContext(floatResult), this);
+ LinesBoundingBoxGeneratorContext context(floatResult);
+ generateCulledLineBoxRects(context, this);
return enclosingIntRect(floatResult);
}
@@ -888,7 +889,8 @@ InlineBox* RenderInline::culledInlineLastLineBox() const
LayoutRect RenderInline::culledInlineVisualOverflowBoundingBox() const
{
FloatRect floatResult;
- generateCulledLineBoxRects(LinesBoundingBoxGeneratorContext(floatResult), this);
+ LinesBoundingBoxGeneratorContext context(floatResult);
+ generateCulledLineBoxRects(context, this);
LayoutRect result(enclosingLayoutRect(floatResult));
bool isHorizontal = style()->isHorizontalWritingMode();
for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
@@ -1354,7 +1356,8 @@ void RenderInline::imageChanged(WrappedImagePtr, const IntRect*)
void RenderInline::addFocusRingRects(Vector<IntRect>& rects, const LayoutPoint& additionalOffset)
{
- generateLineBoxRects(AbsoluteRectsGeneratorContext(rects, additionalOffset));
+ AbsoluteRectsGeneratorContext context(rects, additionalOffset);
+ generateLineBoxRects(context);
for (RenderObject* curr = firstChild(); curr; curr = curr->nextSibling()) {
if (!curr->isText() && !curr->isListMarker()) {