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