| Index: Source/core/paint/RoundedInnerRectClipper.cpp
|
| diff --git a/Source/core/paint/RoundedInnerRectClipper.cpp b/Source/core/paint/RoundedInnerRectClipper.cpp
|
| index 5f4274cc6bdedd8a7e88c758d4c57acecfb6c2de..3074111ccca3b607522dcfc939b4ca08d5bf9b5e 100644
|
| --- a/Source/core/paint/RoundedInnerRectClipper.cpp
|
| +++ b/Source/core/paint/RoundedInnerRectClipper.cpp
|
| @@ -18,37 +18,37 @@ RoundedInnerRectClipper::RoundedInnerRectClipper(LayoutObject& layoutObject, con
|
| , m_useDisplayItemList(RuntimeEnabledFeatures::slimmingPaintEnabled() && behavior == ApplyToDisplayListIfEnabled)
|
| , m_clipType(m_useDisplayItemList ? m_paintInfo.displayItemTypeForClipping() : DisplayItem::ClipBoxPaintPhaseFirst)
|
| {
|
| - OwnPtr<ClipDisplayItem> clipDisplayItem = ClipDisplayItem::create(layoutObject, m_clipType, LayoutRect::infiniteIntRect());
|
| -
|
| + OwnPtr<Vector<FloatRoundedRect>> roundedRectClips = adoptPtr(new Vector<FloatRoundedRect>());
|
| if (clipRect.isRenderable()) {
|
| - clipDisplayItem->roundedRectClips().append(clipRect);
|
| + roundedRectClips->append(clipRect);
|
| } else {
|
| // We create a rounded rect for each of the corners and clip it, while making sure we clip opposing corners together.
|
| if (!clipRect.radii().topLeft().isEmpty() || !clipRect.radii().bottomRight().isEmpty()) {
|
| FloatRect topCorner(clipRect.rect().x(), clipRect.rect().y(), rect.maxX() - clipRect.rect().x(), rect.maxY() - clipRect.rect().y());
|
| FloatRoundedRect::Radii topCornerRadii;
|
| topCornerRadii.setTopLeft(clipRect.radii().topLeft());
|
| - clipDisplayItem->roundedRectClips().append(FloatRoundedRect(topCorner, topCornerRadii));
|
| + roundedRectClips->append(FloatRoundedRect(topCorner, topCornerRadii));
|
|
|
| FloatRect bottomCorner(rect.x().toFloat(), rect.y().toFloat(), clipRect.rect().maxX() - rect.x().toFloat(), clipRect.rect().maxY() - rect.y().toFloat());
|
| FloatRoundedRect::Radii bottomCornerRadii;
|
| bottomCornerRadii.setBottomRight(clipRect.radii().bottomRight());
|
| - clipDisplayItem->roundedRectClips().append(FloatRoundedRect(bottomCorner, bottomCornerRadii));
|
| + roundedRectClips->append(FloatRoundedRect(bottomCorner, bottomCornerRadii));
|
| }
|
|
|
| if (!clipRect.radii().topRight().isEmpty() || !clipRect.radii().bottomLeft().isEmpty()) {
|
| FloatRect topCorner(rect.x().toFloat(), clipRect.rect().y(), clipRect.rect().maxX() - rect.x().toFloat(), rect.maxY() - clipRect.rect().y());
|
| FloatRoundedRect::Radii topCornerRadii;
|
| topCornerRadii.setTopRight(clipRect.radii().topRight());
|
| - clipDisplayItem->roundedRectClips().append(FloatRoundedRect(topCorner, topCornerRadii));
|
| + roundedRectClips->append(FloatRoundedRect(topCorner, topCornerRadii));
|
|
|
| FloatRect bottomCorner(clipRect.rect().x(), rect.y().toFloat(), rect.maxX() - clipRect.rect().x(), clipRect.rect().maxY() - rect.y().toFloat());
|
| FloatRoundedRect::Radii bottomCornerRadii;
|
| bottomCornerRadii.setBottomLeft(clipRect.radii().bottomLeft());
|
| - clipDisplayItem->roundedRectClips().append(FloatRoundedRect(bottomCorner, bottomCornerRadii));
|
| + roundedRectClips->append(FloatRoundedRect(bottomCorner, bottomCornerRadii));
|
| }
|
| }
|
|
|
| + OwnPtr<ClipDisplayItem> clipDisplayItem = ClipDisplayItem::create(layoutObject, m_clipType, LayoutRect::infiniteIntRect(), roundedRectClips.release());
|
| if (m_useDisplayItemList) {
|
| ASSERT(m_paintInfo.context->displayItemList());
|
| if (m_paintInfo.context->displayItemList()->displayItemConstructionIsDisabled())
|
|
|