| Index: Source/WebCore/rendering/RenderLineBoxList.cpp
 | 
| ===================================================================
 | 
| --- Source/WebCore/rendering/RenderLineBoxList.cpp	(revision 116144)
 | 
| +++ Source/WebCore/rendering/RenderLineBoxList.cpp	(working copy)
 | 
| @@ -321,9 +321,9 @@
 | 
|      if (!firstBox) {
 | 
|          // For an empty inline, go ahead and propagate the check up to our parent, unless the parent
 | 
|          // is already dirty.
 | 
| -        if (container->isInline() && !container->parent()->selfNeedsLayout()) {
 | 
| +        if (container->isInline() && !container->parent()->ancestorLineBoxDirty()) {
 | 
|              container->parent()->dirtyLinesFromChangedChild(container);
 | 
| -            container->setNeedsLayout(true); // Mark the container as needing layout to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
 | 
| +            container->setAncestorLineBoxDirty(); // Mark the container to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
 | 
|          }
 | 
|          return;
 | 
|      }
 | 
| @@ -361,9 +361,9 @@
 | 
|              // we won't find a previous sibling, but firstBox can be pointing to a following sibling.
 | 
|              // This isn't good enough, since we won't locate the root line box that encloses the removed
 | 
|              // <br>. We have to just over-invalidate a bit and go up to our parent.
 | 
| -            if (!inlineContainer->parent()->selfNeedsLayout()) {
 | 
| +            if (!inlineContainer->parent()->ancestorLineBoxDirty()) {
 | 
|                  inlineContainer->parent()->dirtyLinesFromChangedChild(inlineContainer);
 | 
| -                inlineContainer->setNeedsLayout(true); // Mark the container as needing layout to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
 | 
| +                inlineContainer->setAncestorLineBoxDirty(); // Mark the container to avoid dirtying the same lines again across multiple destroy() calls of the same subtree.
 | 
|              }
 | 
|              return;
 | 
|          }
 | 
| 
 |