Title: [169038] trunk/Source/WebCore
Revision
169038
Author
[email protected]
Date
2014-05-18 23:44:35 -0700 (Sun, 18 May 2014)

Log Message

Reduce constructor copypasta in RenderText and RenderElement.
<https://webkit.org/b/133056>

Use delegating constructors to remove duplicated initializer lists
from the constructors of RenderText and RenderElement.

Reviewed by Anders Carlsson.

* rendering/RenderElement.cpp:
(WebCore::RenderElement::RenderElement):
* rendering/RenderElement.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
* rendering/RenderText.h:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (169037 => 169038)


--- trunk/Source/WebCore/ChangeLog	2014-05-19 05:50:30 UTC (rev 169037)
+++ trunk/Source/WebCore/ChangeLog	2014-05-19 06:44:35 UTC (rev 169038)
@@ -1,3 +1,20 @@
+2014-05-18  Andreas Kling  <[email protected]>
+
+        Reduce constructor copypasta in RenderText and RenderElement.
+        <https://webkit.org/b/133056>
+
+        Use delegating constructors to remove duplicated initializer lists
+        from the constructors of RenderText and RenderElement.
+
+        Reviewed by Anders Carlsson.
+
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::RenderElement):
+        * rendering/RenderElement.h:
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::RenderText):
+        * rendering/RenderText.h:
+
 2014-05-18  Brent Fulgham  <[email protected]>
 
         Crash during scroll when latched

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (169037 => 169038)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2014-05-19 05:50:30 UTC (rev 169037)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2014-05-19 06:44:35 UTC (rev 169038)
@@ -76,9 +76,9 @@
     static NeverDestroyed<HashMap<const RenderObject*, ControlStates*>> map;
     return map;
 }
-    
-RenderElement::RenderElement(Element& element, PassRef<RenderStyle> style, unsigned baseTypeFlags)
-    : RenderObject(element)
+
+inline RenderElement::RenderElement(ContainerNode& elementOrDocument, PassRef<RenderStyle> style, unsigned baseTypeFlags)
+    : RenderObject(elementOrDocument)
     , m_baseTypeFlags(baseTypeFlags)
     , m_ancestorLineBoxDirty(false)
     , m_hasInitializedStyle(false)
@@ -91,17 +91,13 @@
 {
 }
 
+RenderElement::RenderElement(Element& element, PassRef<RenderStyle> style, unsigned baseTypeFlags)
+    : RenderElement(static_cast<ContainerNode&>(element), std::move(style), baseTypeFlags)
+{
+}
+
 RenderElement::RenderElement(Document& document, PassRef<RenderStyle> style, unsigned baseTypeFlags)
-    : RenderObject(document)
-    , m_baseTypeFlags(baseTypeFlags)
-    , m_ancestorLineBoxDirty(false)
-    , m_hasInitializedStyle(false)
-    , m_renderInlineAlwaysCreatesLineBoxes(false)
-    , m_renderBoxNeedsLazyRepaint(false)
-    , m_hasPausedImageAnimations(false)
-    , m_firstChild(nullptr)
-    , m_lastChild(nullptr)
-    , m_style(std::move(style))
+    : RenderElement(static_cast<ContainerNode&>(document), std::move(style), baseTypeFlags)
 {
 }
 

Modified: trunk/Source/WebCore/rendering/RenderElement.h (169037 => 169038)


--- trunk/Source/WebCore/rendering/RenderElement.h	2014-05-19 05:50:30 UTC (rev 169037)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2014-05-19 06:44:35 UTC (rev 169038)
@@ -199,6 +199,7 @@
     static void addControlStatesForRenderer(const RenderObject*, ControlStates*);
 
 private:
+    RenderElement(ContainerNode&, PassRef<RenderStyle>, unsigned baseTypeFlags);
     void node() const = delete;
     void nonPseudoNode() const = delete;
     void generatingNode() const = delete;

Modified: trunk/Source/WebCore/rendering/RenderText.cpp (169037 => 169038)


--- trunk/Source/WebCore/rendering/RenderText.cpp	2014-05-19 05:50:30 UTC (rev 169037)
+++ trunk/Source/WebCore/rendering/RenderText.cpp	2014-05-19 06:44:35 UTC (rev 169038)
@@ -153,8 +153,8 @@
     *string = result.toString();
 }
 
-RenderText::RenderText(Text& textNode, const String& text)
-    : RenderObject(textNode)
+inline RenderText::RenderText(Node& node, const String& text)
+    : RenderObject(node)
     , m_hasTab(false)
     , m_linesDirty(false)
     , m_containsReversedText(false)
@@ -177,28 +177,14 @@
     view().frameView().incrementVisuallyNonEmptyCharacterCount(textLength());
 }
 
+RenderText::RenderText(Text& textNode, const String& text)
+    : RenderText(static_cast<Node&>(textNode), text)
+{
+}
+
 RenderText::RenderText(Document& document, const String& text)
-    : RenderObject(document)
-    , m_hasTab(false)
-    , m_linesDirty(false)
-    , m_containsReversedText(false)
-    , m_isAllASCII(text.containsOnlyASCII())
-    , m_knownToHaveNoOverflowAndNoFallbackFonts(false)
-    , m_useBackslashAsYenSymbol(false)
-    , m_originalTextDiffersFromRendered(false)
-#if ENABLE(IOS_TEXT_AUTOSIZING)
-    , m_candidateComputedTextSize(0)
-#endif
-    , m_minWidth(-1)
-    , m_maxWidth(-1)
-    , m_beginMinWidth(0)
-    , m_endMinWidth(0)
-    , m_text(text)
+    : RenderText(static_cast<Node&>(document), text)
 {
-    ASSERT(!m_text.isNull());
-    setIsText();
-    m_canUseSimpleFontCodePath = computeCanUseSimpleFontCodePath();
-    view().frameView().incrementVisuallyNonEmptyCharacterCount(textLength());
 }
 
 RenderText::~RenderText()

Modified: trunk/Source/WebCore/rendering/RenderText.h (169037 => 169038)


--- trunk/Source/WebCore/rendering/RenderText.h	2014-05-19 05:50:30 UTC (rev 169037)
+++ trunk/Source/WebCore/rendering/RenderText.h	2014-05-19 06:44:35 UTC (rev 169038)
@@ -162,6 +162,8 @@
     virtual UChar previousCharacter() const;
 
 private:
+    RenderText(Node&, const String&);
+
     virtual bool canHaveChildren() const override final { return false; }
 
     void computePreferredLogicalWidths(float leadWidth, HashSet<const SimpleFontData*>& fallbackFonts, GlyphOverflow&);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to