diff options
author | Steve Block <steveblock@google.com> | 2012-04-12 06:41:58 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-12 06:41:58 -0700 |
commit | 8c7fd36cd11b84541c4579f3c6282f55603bf134 (patch) | |
tree | 4942d1b479ae7a5608fb6e6bf084625704e7c600 /Source/WebCore/rendering | |
parent | 0e9cb9c34633be347e4c732c0fa6f055c072fa8d (diff) | |
parent | c9773ed4ca308bb2b8e70f49ba7fbaa35b1f46a2 (diff) | |
download | external_webkit-8c7fd36cd11b84541c4579f3c6282f55603bf134.zip external_webkit-8c7fd36cd11b84541c4579f3c6282f55603bf134.tar.gz external_webkit-8c7fd36cd11b84541c4579f3c6282f55603bf134.tar.bz2 |
Merge "Cherry-pick WebKit change r90068 to fix a rendering crash"
Diffstat (limited to 'Source/WebCore/rendering')
-rw-r--r-- | Source/WebCore/rendering/RenderBlock.cpp | 2 | ||||
-rw-r--r-- | Source/WebCore/rendering/RenderReplaced.cpp | 8 | ||||
-rw-r--r-- | Source/WebCore/rendering/RenderReplaced.h | 2 | ||||
-rw-r--r-- | Source/WebCore/rendering/RenderWidget.cpp | 4 |
4 files changed, 15 insertions, 1 deletions
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp index a90bf69..42d68a0 100644 --- a/Source/WebCore/rendering/RenderBlock.cpp +++ b/Source/WebCore/rendering/RenderBlock.cpp @@ -191,7 +191,7 @@ void RenderBlock::destroy() childBox->remove(); } } - } else if (isInline() && parent()) + } else if (parent()) parent()->dirtyLinesFromChangedChild(this); } diff --git a/Source/WebCore/rendering/RenderReplaced.cpp b/Source/WebCore/rendering/RenderReplaced.cpp index c27d336..09a7944 100644 --- a/Source/WebCore/rendering/RenderReplaced.cpp +++ b/Source/WebCore/rendering/RenderReplaced.cpp @@ -57,6 +57,14 @@ RenderReplaced::~RenderReplaced() { } +void RenderReplaced::destroy() +{ + if (!documentBeingDestroyed() && parent()) + parent()->dirtyLinesFromChangedChild(this); + + RenderBox::destroy(); +} + void RenderReplaced::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) { RenderBox::styleDidChange(diff, oldStyle); diff --git a/Source/WebCore/rendering/RenderReplaced.h b/Source/WebCore/rendering/RenderReplaced.h index d6ebba6..29fc71c 100644 --- a/Source/WebCore/rendering/RenderReplaced.h +++ b/Source/WebCore/rendering/RenderReplaced.h @@ -32,6 +32,8 @@ public: RenderReplaced(Node*, const IntSize& intrinsicSize); virtual ~RenderReplaced(); + virtual void destroy(); + protected: virtual void layout(); diff --git a/Source/WebCore/rendering/RenderWidget.cpp b/Source/WebCore/rendering/RenderWidget.cpp index 894d689..97444cd 100644 --- a/Source/WebCore/rendering/RenderWidget.cpp +++ b/Source/WebCore/rendering/RenderWidget.cpp @@ -125,6 +125,10 @@ void RenderWidget::destroy() document()->axObjectCache()->childrenChanged(this->parent()); document()->axObjectCache()->remove(this); } + + if (!documentBeingDestroyed() && parent()) + parent()->dirtyLinesFromChangedChild(this); + remove(); if (m_hasCounterNodeMap) |