| Index: Source/WebCore/rendering/RenderObject.cpp
 | 
| ===================================================================
 | 
| --- Source/WebCore/rendering/RenderObject.cpp	(revision 109456)
 | 
| +++ Source/WebCore/rendering/RenderObject.cpp	(working copy)
 | 
| @@ -2217,6 +2217,21 @@
 | 
|      return st == SelectionStart || st == SelectionEnd || st == SelectionBoth;
 | 
|  }
 | 
|  
 | 
| +inline void RenderObject::clearLayoutRootIfNeeded() const
 | 
| +{
 | 
| +    if (node() && !documentBeingDestroyed() && frame()) {
 | 
| +        if (FrameView* view = frame()->view()) {
 | 
| +            if (view->layoutRoot() == this) {
 | 
| +                ASSERT_NOT_REACHED();
 | 
| +                // This indicates a failure to layout the child, which is why
 | 
| +                // the layout root is still set to |this|. Make sure to clear it
 | 
| +                // since we are getting destroyed.
 | 
| +                view->clearLayoutRoot();
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| +
 | 
|  void RenderObject::willBeDestroyed()
 | 
|  {
 | 
|      // Destroy any leftover anonymous children.
 | 
| @@ -2255,6 +2270,8 @@
 | 
|          setHasLayer(false);
 | 
|          toRenderBoxModelObject(this)->destroyLayer();
 | 
|      }
 | 
| +
 | 
| +    clearLayoutRootIfNeeded();
 | 
|  }
 | 
|  
 | 
|  void RenderObject::destroy()
 | 
| 
 |