Title: [125953] trunk/Source/WebCore
Revision
125953
Author
[email protected]
Date
2012-08-17 17:10:11 -0700 (Fri, 17 Aug 2012)

Log Message

Unreviewed, rolling out r125940.
http://trac.webkit.org/changeset/125940
https://bugs.webkit.org/show_bug.cgi?id=94398

"Causes crashes on the bots
http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r125944%20(2626)/fast/css
/first-letter-removed-added-crash-log.txt" (Requested by
bradee-oh on #webkit).

Patch by Sheriff Bot <[email protected]> on 2012-08-17

* rendering/RenderListItem.cpp:
* rendering/RenderListItem.h:
(RenderListItem):
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
(RenderObject):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode):
* rendering/RenderObjectChildList.h:
(RenderObjectChildList):
* rendering/RenderQuote.cpp:
* rendering/RenderQuote.h:
* rendering/RenderRegion.cpp:
* rendering/RenderRegion.h:
(RenderRegion):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (125952 => 125953)


--- trunk/Source/WebCore/ChangeLog	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/ChangeLog	2012-08-18 00:10:11 UTC (rev 125953)
@@ -1,3 +1,30 @@
+2012-08-17  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r125940.
+        http://trac.webkit.org/changeset/125940
+        https://bugs.webkit.org/show_bug.cgi?id=94398
+
+        "Causes crashes on the bots
+        http://build.webkit.org/results/Apple%20Lion%20Debug%20WK2%20(Tests)/r125944%20(2626)/fast/css
+        /first-letter-removed-added-crash-log.txt" (Requested by
+        bradee-oh on #webkit).
+
+        * rendering/RenderListItem.cpp:
+        * rendering/RenderListItem.h:
+        (RenderListItem):
+        * rendering/RenderObject.cpp:
+        * rendering/RenderObject.h:
+        (RenderObject):
+        * rendering/RenderObjectChildList.cpp:
+        (WebCore::RenderObjectChildList::removeChildNode):
+        * rendering/RenderObjectChildList.h:
+        (RenderObjectChildList):
+        * rendering/RenderQuote.cpp:
+        * rendering/RenderQuote.h:
+        * rendering/RenderRegion.cpp:
+        * rendering/RenderRegion.h:
+        (RenderRegion):
+
 2012-08-17  Sukolsak Sakshuwong  <[email protected]>
 
         Disconnect UndoManager when its undo scope host is destroyed

Modified: trunk/Source/WebCore/rendering/RenderListItem.cpp (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderListItem.cpp	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderListItem.cpp	2012-08-18 00:10:11 UTC (rev 125953)
@@ -83,13 +83,6 @@
     updateListMarkerNumbers();
 }
 
-void RenderListItem::willBeRemovedFromTree()
-{
-    RenderBlock::willBeRemovedFromTree();
-
-    updateListMarkerNumbers();
-}
-
 static bool isList(Node* node)
 {
     return (node->hasTagName(ulTag) || node->hasTagName(olTag));

Modified: trunk/Source/WebCore/rendering/RenderListItem.h (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderListItem.h	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderListItem.h	2012-08-18 00:10:11 UTC (rev 125953)
@@ -59,7 +59,6 @@
     virtual void willBeDestroyed();
 
     virtual void insertedIntoTree() OVERRIDE;
-    virtual void willBeRemovedFromTree() OVERRIDE;
 
     virtual bool isEmpty() const;
     virtual void paint(PaintInfo&, const LayoutPoint&);

Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderObject.cpp	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp	2012-08-18 00:10:11 UTC (rev 125953)
@@ -2395,42 +2395,6 @@
         containerFlowThread->addFlowChild(this);
 }
 
-void RenderObject::willBeRemovedFromTree()
-{
-    ASSERT(isRooted());
-
-    // If we remove a visible child from an invisible parent, we don't know the layer visibility any more.
-    RenderLayer* layer = 0;
-    if (parent()->style()->visibility() != VISIBLE && style()->visibility() == VISIBLE && !hasLayer()) {
-        if ((layer = parent()->enclosingLayer()))
-            layer->dirtyVisibleContentStatus();
-    }
-
-    // Keep our layer hierarchy updated.
-    if (firstChild() || hasLayer()) {
-        if (!layer)
-            layer = parent()->enclosingLayer();
-        removeLayers(layer);
-    }
-
-    if (isOutOfFlowPositioned() && parent()->childrenInline())
-        parent()->dirtyLinesFromChangedChild(this);
-
-    if (inRenderFlowThread()) {
-        if (isBox())
-            enclosingRenderFlowThread()->removeRenderBoxRegionInfo(toRenderBox(this));
-        enclosingRenderFlowThread()->clearRenderObjectCustomStyle(this);
-    }
-
-    if (RenderNamedFlowThread* containerFlowThread = parent()->enclosingRenderNamedFlowThread())
-        containerFlowThread->removeFlowChild(this);
-
-#if ENABLE(SVG)
-    // Update cached boundaries in SVG renderers, if a child is removed.
-    parent()->setNeedsBoundariesUpdate();
-#endif
-}
-
 void RenderObject::destroyAndCleanupAnonymousWrappers()
 {
     RenderObject* parent = this->parent();

Modified: trunk/Source/WebCore/rendering/RenderObject.h (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderObject.h	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2012-08-18 00:10:11 UTC (rev 125953)
@@ -939,7 +939,6 @@
     virtual bool canBeReplacedWithInlineRunIn() const;
 
     virtual void insertedIntoTree();
-    virtual void willBeRemovedFromTree();
 
 private:
     RenderStyle* firstLineStyleSlowCase() const;

Modified: trunk/Source/WebCore/rendering/RenderObjectChildList.cpp (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderObjectChildList.cpp	2012-08-18 00:10:11 UTC (rev 125953)
@@ -63,7 +63,7 @@
     }
 }
 
-RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, RenderObject* oldChild, bool notifyRenderer)
+RenderObject* RenderObjectChildList::removeChildNode(RenderObject* owner, RenderObject* oldChild, bool fullRemove)
 {
     ASSERT(oldChild->parent() == owner);
 
@@ -73,7 +73,7 @@
     // So that we'll get the appropriate dirty bit set (either that a normal flow child got yanked or
     // that a positioned child got yanked).  We also repaint, so that the area exposed when the child
     // disappears gets repainted properly.
-    if (!owner->documentBeingDestroyed() && notifyRenderer && oldChild->everHadLayout()) {
+    if (!owner->documentBeingDestroyed() && fullRemove && oldChild->everHadLayout()) {
         oldChild->setNeedsLayoutAndPrefWidthsRecalc();
         if (oldChild->isBody())
             owner->view()->repaint();
@@ -85,8 +85,47 @@
     if (oldChild->isBox())
         toRenderBox(oldChild)->deleteLineBoxWrapper();
 
-    if (!owner->documentBeingDestroyed() && notifyRenderer)
-        oldChild->willBeRemovedFromTree();
+    if (!owner->documentBeingDestroyed() && fullRemove) {
+        // if we remove visible child from an invisible parent, we don't know the layer visibility any more
+        RenderLayer* layer = 0;
+        if (owner->style()->visibility() != VISIBLE && oldChild->style()->visibility() == VISIBLE && !oldChild->hasLayer()) {
+            if ((layer = owner->enclosingLayer()))
+                layer->dirtyVisibleContentStatus();
+        }
+
+         // Keep our layer hierarchy updated.
+        if (oldChild->firstChild() || oldChild->hasLayer()) {
+            if (!layer)
+                layer = owner->enclosingLayer();
+            oldChild->removeLayers(layer);
+        }
+
+        if (oldChild->isListItem())
+            toRenderListItem(oldChild)->updateListMarkerNumbers();
+
+        if (oldChild->isOutOfFlowPositioned() && owner->childrenInline())
+            owner->dirtyLinesFromChangedChild(oldChild);
+
+        if (oldChild->isRenderRegion())
+            toRenderRegion(oldChild)->detachRegion();
+
+        if (oldChild->isQuote())
+            toRenderQuote(oldChild)->detachQuote();
+
+        if (oldChild->inRenderFlowThread()) {
+            if (oldChild->isBox())
+                oldChild->enclosingRenderFlowThread()->removeRenderBoxRegionInfo(toRenderBox(oldChild));
+            oldChild->enclosingRenderFlowThread()->clearRenderObjectCustomStyle(oldChild);
+        }
+
+        if (RenderNamedFlowThread* containerFlowThread = owner->enclosingRenderNamedFlowThread())
+            containerFlowThread->removeFlowChild(oldChild);
+
+#if ENABLE(SVG)
+        // Update cached boundaries in SVG renderers, if a child is removed.
+        owner->setNeedsBoundariesUpdate();
+#endif
+    }
     
     // If oldChild is the start or end of the selection, then clear the selection to
     // avoid problems of invalid pointers.

Modified: trunk/Source/WebCore/rendering/RenderObjectChildList.h (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderObjectChildList.h	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderObjectChildList.h	2012-08-18 00:10:11 UTC (rev 125953)
@@ -52,7 +52,7 @@
     
     void destroyLeftoverChildren();
 
-    RenderObject* removeChildNode(RenderObject* owner, RenderObject*, bool notifyRenderer = true);
+    RenderObject* removeChildNode(RenderObject* owner, RenderObject*, bool fullRemove = true);
     void appendChildNode(RenderObject* owner, RenderObject*, bool notifyRenderer = true);
     void insertChildNode(RenderObject* owner, RenderObject* child, RenderObject* before, bool notifyRenderer = true);
 

Modified: trunk/Source/WebCore/rendering/RenderQuote.cpp (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderQuote.cpp	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderQuote.cpp	2012-08-18 00:10:11 UTC (rev 125953)
@@ -50,13 +50,6 @@
     RenderText::willBeDestroyed();
 }
 
-void RenderQuote::willBeRemovedFromTree()
-{
-    RenderText::willBeRemovedFromTree();
-
-    detachQuote();
-}
-
 typedef HashMap<AtomicString, const QuotesData*, CaseFoldingHash> QuotesMap;
 
 static const QuotesMap& quotesDataLanguageMap()

Modified: trunk/Source/WebCore/rendering/RenderQuote.h (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderQuote.h	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderQuote.h	2012-08-18 00:10:11 UTC (rev 125953)
@@ -49,8 +49,6 @@
     // renderers before going into the main render tree. Once we can ensure that insertIntoTree,
     // is called on an attached tree, we should override it here.
 
-    virtual void willBeRemovedFromTree() OVERRIDE;
-
     const QuotesData* quotesData() const;
     void updateDepth();
     bool isAttached() { return m_attached; }

Modified: trunk/Source/WebCore/rendering/RenderRegion.cpp (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderRegion.cpp	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderRegion.cpp	2012-08-18 00:10:11 UTC (rev 125953)
@@ -364,13 +364,6 @@
     attachRegion();
 }
 
-void RenderRegion::willBeRemovedFromTree()
-{
-    RenderReplaced::willBeRemovedFromTree();
-
-    detachRegion();
-}
-
 PassRefPtr<RenderStyle> RenderRegion::computeStyleInRegion(const RenderObject* object)
 {
     ASSERT(object);

Modified: trunk/Source/WebCore/rendering/RenderRegion.h (125952 => 125953)


--- trunk/Source/WebCore/rendering/RenderRegion.h	2012-08-18 00:08:21 UTC (rev 125952)
+++ trunk/Source/WebCore/rendering/RenderRegion.h	2012-08-18 00:10:11 UTC (rev 125953)
@@ -101,7 +101,6 @@
     virtual const char* renderName() const { return "RenderRegion"; }
 
     virtual void insertedIntoTree() OVERRIDE;
-    virtual void willBeRemovedFromTree() OVERRIDE;
 
     PassRefPtr<RenderStyle> computeStyleInRegion(const RenderObject*);
     void computeChildrenStyleInRegion(const RenderObject*);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to