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&);