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() |