Title: [229013] releases/WebKitGTK/webkit-2.20/Source/WebCore
Revision
229013
Author
[email protected]
Date
2018-02-26 05:22:26 -0800 (Mon, 26 Feb 2018)

Log Message

Merge r228884 - [RenderTreeBuilder] Move RenderTextFragment::willBeRemoved() mutation logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182946
<rdar://problem/37690039>

Reviewed by Antti Koivisto.

No change in functionality.

* rendering/RenderTextFragment.cpp:
(WebCore::RenderTextFragment::willBeDestroyed):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::takeChild):
* rendering/updating/RenderTreeBuilderFirstLetter.cpp:
(WebCore::RenderTreeBuilder::FirstLetter::cleanupOnRemoval):
* rendering/updating/RenderTreeBuilderFirstLetter.h:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/ChangeLog	2018-02-26 13:22:26 UTC (rev 229013)
@@ -1,3 +1,21 @@
+2018-02-21  Zalan Bujtas  <[email protected]>
+
+        [RenderTreeBuilder] Move RenderTextFragment::willBeRemoved() mutation logic to RenderTreeBuilder
+        https://bugs.webkit.org/show_bug.cgi?id=182946
+        <rdar://problem/37690039>
+
+        Reviewed by Antti Koivisto.
+
+        No change in functionality.
+
+        * rendering/RenderTextFragment.cpp:
+        (WebCore::RenderTextFragment::willBeDestroyed):
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::takeChild):
+        * rendering/updating/RenderTreeBuilderFirstLetter.cpp:
+        (WebCore::RenderTreeBuilder::FirstLetter::cleanupOnRemoval):
+        * rendering/updating/RenderTreeBuilderFirstLetter.h:
+
 2018-02-21  Ms2ger  <[email protected]>
 
         [GCrypt] Remove unsound assertion from CryptoKeyRSA::exportData().

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.cpp	2018-02-26 13:22:26 UTC (rev 229013)
@@ -59,7 +59,10 @@
 {
 }
 
-RenderTextFragment::~RenderTextFragment() = default;
+RenderTextFragment::~RenderTextFragment()
+{
+    ASSERT(!m_firstLetter);
+}
 
 bool RenderTextFragment::canBeSelectionLeaf() const
 {
@@ -74,13 +77,6 @@
         block->mutableStyle().removeCachedPseudoStyle(FIRST_LETTER);
 }
 
-void RenderTextFragment::willBeDestroyed(RenderTreeBuilder& builder)
-{
-    if (m_firstLetter)
-        builder.removeAndDestroy(*m_firstLetter);
-    RenderText::willBeDestroyed(builder);
-}
-
 void RenderTextFragment::setText(const String& newText, bool force)
 {
     RenderText::setText(newText, force);

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/RenderTextFragment.h	2018-02-26 13:22:26 UTC (rev 229013)
@@ -60,7 +60,6 @@
 private:
     bool isTextFragment() const override { return true; }
     void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
-    void willBeDestroyed(RenderTreeBuilder&) override;
 
     UChar previousCharacter() const override;
 

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2018-02-26 13:22:26 UTC (rev 229013)
@@ -154,6 +154,9 @@
         fullScreenBuilder().cleanupOnDestroy(downcast<RenderFullScreen>(renderer));
 #endif
 
+    if (is<RenderTextFragment>(renderer))
+        firstLetterBuilder().cleanupOnDestroy(downcast<RenderTextFragment>(renderer));
+
     // We need to detach the subtree first so that the descendants don't have
     // access to previous/next sublings at takeChild().
     // FIXME: webkit.org/b/182909.

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.cpp	2018-02-26 13:22:26 UTC (rev 229013)
@@ -151,6 +151,13 @@
     createRenderers(block, downcast<RenderText>(*firstLetterRenderer));
 }
 
+void RenderTreeBuilder::FirstLetter::cleanupOnDestroy(RenderTextFragment& textFragment)
+{
+    if (!textFragment.firstLetter())
+        return;
+    m_builder.removeAndDestroy(*textFragment.firstLetter());
+}
+
 void RenderTreeBuilder::FirstLetter::updateStyle(RenderBlock& firstLetterBlock, RenderObject& currentChild)
 {
     RenderElement* firstLetter = currentChild.parent();

Modified: releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.h (229012 => 229013)


--- releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.h	2018-02-26 13:22:20 UTC (rev 229012)
+++ releases/WebKitGTK/webkit-2.20/Source/WebCore/rendering/updating/RenderTreeBuilderFirstLetter.h	2018-02-26 13:22:26 UTC (rev 229013)
@@ -36,6 +36,7 @@
     FirstLetter(RenderTreeBuilder&);
 
     void updateAfterDescendants(RenderBlock&);
+    void cleanupOnDestroy(RenderTextFragment&);
 
 private:
     void updateStyle(RenderBlock& firstLetterBlock, RenderObject& currentChild);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to