Inline RenderStyle into RenderElement
https://bugs.webkit.org/show_bug.cgi?id=156981
Reviewed by Andreas Kling.
We can save memory and reduce indirection of style access by inlining RenderStyle to RenderElement.
This patch also makes RenderStyle moveable and switches from std::unique_ptr<RenderStyle> to RenderStyle&&
in many places where ownership is passed.
* Modules/plugins/PluginReplacement.h:
(WebCore::PluginReplacement::scriptObject):
(WebCore::PluginReplacement::willCreateRenderer):
* Modules/plugins/QuickTimePluginReplacement.h:
* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement):
(WebCore::QuickTimePluginReplacement::createElementRenderer):
* Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
(WebCore::YouTubePluginReplacement::createElementRenderer):
* Modules/plugins/YouTubePluginReplacement.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleForElement):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::pseudoStyleForElement):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::defaultStyleForElement):
(WebCore::StyleResolver::addToMatchedPropertiesCache):
(WebCore::StyleResolver::applyPropertyToStyle):
* dom/Document.cpp:
(WebCore::Document::recalcStyle):
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::setFullScreenRenderer):
* dom/Element.cpp:
(WebCore::Element::rendererIsNeeded):
(WebCore::Element::createElementRenderer):
* dom/Element.h:
(WebCore::Element::copyNonAttributePropertiesFromElement):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::resolveCustomStyle):
(WebCore::PseudoElement::didAttachRenderers):
(WebCore::PseudoElement::didRecalcStyle):
* html/BaseButtonInputType.cpp:
(WebCore::BaseButtonInputType::appendFormData):
(WebCore::BaseButtonInputType::createInputRenderer):
* html/BaseButtonInputType.h:
* html/FileInputType.cpp:
(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::createInputRenderer):
* html/FileInputType.h:
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::rendererIsNeeded):
(WebCore::HTMLAppletElement::createElementRenderer):
...
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@200041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index c880896..8364528 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,61 @@
+2016-04-25 Antti Koivisto <antti@apple.com>
+
+ Inline RenderStyle into RenderElement
+ https://bugs.webkit.org/show_bug.cgi?id=156981
+
+ Reviewed by Andreas Kling.
+
+ We can save memory and reduce indirection of style access by inlining RenderStyle to RenderElement.
+
+ This patch also makes RenderStyle moveable and switches from std::unique_ptr<RenderStyle> to RenderStyle&&
+ in many places where ownership is passed.
+
+ * Modules/plugins/PluginReplacement.h:
+ (WebCore::PluginReplacement::scriptObject):
+ (WebCore::PluginReplacement::willCreateRenderer):
+ * Modules/plugins/QuickTimePluginReplacement.h:
+ * Modules/plugins/QuickTimePluginReplacement.mm:
+ (WebCore::QuickTimePluginReplacement::~QuickTimePluginReplacement):
+ (WebCore::QuickTimePluginReplacement::createElementRenderer):
+ * Modules/plugins/YouTubePluginReplacement.cpp:
+ (WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
+ (WebCore::YouTubePluginReplacement::createElementRenderer):
+ * Modules/plugins/YouTubePluginReplacement.h:
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::styleForElement):
+ (WebCore::StyleResolver::styleForKeyframe):
+ (WebCore::StyleResolver::pseudoStyleForElement):
+ (WebCore::StyleResolver::styleForPage):
+ (WebCore::StyleResolver::defaultStyleForElement):
+ (WebCore::StyleResolver::addToMatchedPropertiesCache):
+ (WebCore::StyleResolver::applyPropertyToStyle):
+ * dom/Document.cpp:
+ (WebCore::Document::recalcStyle):
+ (WebCore::Document::webkitWillEnterFullScreenForElement):
+ (WebCore::Document::setFullScreenRenderer):
+ * dom/Element.cpp:
+ (WebCore::Element::rendererIsNeeded):
+ (WebCore::Element::createElementRenderer):
+ * dom/Element.h:
+ (WebCore::Element::copyNonAttributePropertiesFromElement):
+ * dom/PseudoElement.cpp:
+ (WebCore::PseudoElement::resolveCustomStyle):
+ (WebCore::PseudoElement::didAttachRenderers):
+ (WebCore::PseudoElement::didRecalcStyle):
+ * html/BaseButtonInputType.cpp:
+ (WebCore::BaseButtonInputType::appendFormData):
+ (WebCore::BaseButtonInputType::createInputRenderer):
+ * html/BaseButtonInputType.h:
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::handleDOMActivateEvent):
+ (WebCore::FileInputType::createInputRenderer):
+ * html/FileInputType.h:
+ * html/HTMLAppletElement.cpp:
+ (WebCore::HTMLAppletElement::rendererIsNeeded):
+ (WebCore::HTMLAppletElement::createElementRenderer):
+
+ ...
+
2016-04-25 Eric Carlson <eric.carlson@apple.com>
Stop listening for "media can start" notifications when media player is cleared
@@ -80,6 +138,8 @@
* fileapi/File.h:
* fileapi/File.idl:
+
+
2016-04-25 Antti Koivisto <antti@apple.com>
REGRESSION(r156846): Crashes with guard malloc
diff --git a/Source/WebCore/Modules/plugins/PluginReplacement.h b/Source/WebCore/Modules/plugins/PluginReplacement.h
index 5ead3fa..84b604c 100644
--- a/Source/WebCore/Modules/plugins/PluginReplacement.h
+++ b/Source/WebCore/Modules/plugins/PluginReplacement.h
@@ -49,7 +49,7 @@
virtual JSC::JSObject* scriptObject() { return nullptr; }
virtual bool willCreateRenderer() { return false; }
- virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, std::unique_ptr<RenderStyle>, const RenderTreePosition&) = 0;
+ virtual RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, RenderStyle&&, const RenderTreePosition&) = 0;
};
typedef Ref<PluginReplacement> (*CreatePluginReplacement)(HTMLPlugInElement&, const Vector<String>& paramNames, const Vector<String>& paramValues);
diff --git a/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h b/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h
index 5773925..522e945 100644
--- a/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h
+++ b/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.h
@@ -54,7 +54,7 @@
JSC::JSObject* scriptObject() final { return m_scriptObject; }
bool willCreateRenderer() final { return m_mediaElement; }
- RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, RenderStyle&&, const RenderTreePosition&) final;
bool ensureReplacementScriptInjected();
DOMWrapperWorld& isolatedWorld();
diff --git a/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm b/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm
index a6550e9..08650ab 100644
--- a/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm
+++ b/Source/WebCore/Modules/plugins/QuickTimePluginReplacement.mm
@@ -130,7 +130,7 @@
m_mediaElement = nullptr;
}
-RenderPtr<RenderElement> QuickTimePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> QuickTimePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
ASSERT_UNUSED(plugin, m_parentElement == &plugin);
diff --git a/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp b/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
index 2a90e30..81e279d 100644
--- a/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
+++ b/Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp
@@ -67,7 +67,7 @@
m_attributes.add(paramNames[i], paramValues[i]);
}
-RenderPtr<RenderElement> YouTubePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> YouTubePluginReplacement::createElementRenderer(HTMLPlugInElement& plugin, RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
ASSERT_UNUSED(plugin, m_parentElement == &plugin);
diff --git a/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h b/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h
index ec23985..7ed70c11 100644
--- a/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h
+++ b/Source/WebCore/Modules/plugins/YouTubePluginReplacement.h
@@ -50,7 +50,7 @@
String youTubeURL(const String& rawURL);
bool willCreateRenderer() final { return m_embedShadowElement; }
- RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(HTMLPlugInElement&, RenderStyle&&, const RenderTreePosition&) final;
HTMLPlugInElement* m_parentElement;
RefPtr<YouTubeEmbedShadowElement> m_embedShadowElement;
diff --git a/Source/WebCore/css/StyleResolver.cpp b/Source/WebCore/css/StyleResolver.cpp
index ac92b7f..f893697 100644
--- a/Source/WebCore/css/StyleResolver.cpp
+++ b/Source/WebCore/css/StyleResolver.cpp
@@ -388,11 +388,11 @@
State& state = m_state;
if (state.parentStyle()) {
- state.setStyle(RenderStyle::create());
+ state.setStyle(RenderStyle::createPtr());
state.style()->inheritFrom(state.parentStyle(), isAtShadowBoundary(element) ? RenderStyle::AtShadowBoundary : RenderStyle::NotAtShadowBoundary);
} else {
state.setStyle(defaultStyleForElement());
- state.setParentStyle(RenderStyle::clone(state.style()));
+ state.setParentStyle(RenderStyle::clonePtr(*state.style()));
}
auto& style = *state.style();
@@ -453,8 +453,8 @@
State& state = m_state;
// Create the style
- state.setStyle(RenderStyle::clone(elementStyle));
- state.setParentStyle(RenderStyle::clone(elementStyle));
+ state.setStyle(RenderStyle::clonePtr(*elementStyle));
+ state.setParentStyle(RenderStyle::clonePtr(*elementStyle));
TextDirection direction;
WritingMode writingMode;
@@ -565,11 +565,11 @@
State& state = m_state;
if (m_state.parentStyle()) {
- state.setStyle(RenderStyle::create());
+ state.setStyle(RenderStyle::createPtr());
state.style()->inheritFrom(m_state.parentStyle());
} else {
state.setStyle(defaultStyleForElement());
- state.setParentStyle(RenderStyle::clone(state.style()));
+ state.setParentStyle(RenderStyle::clonePtr(*state.style()));
}
// Since we don't use pseudo-elements in any of our quirk/print user agent rules, don't waste time walking
@@ -614,11 +614,11 @@
auto* documentElement = m_document.documentElement();
if (!documentElement)
- return RenderStyle::create();
+ return RenderStyle::createPtr();
m_state = State(*documentElement, m_document.renderStyle());
- m_state.setStyle(RenderStyle::create());
+ m_state.setStyle(RenderStyle::createPtr());
m_state.style()->inheritFrom(m_state.rootElementStyle());
PageRuleCollector collector(m_state, m_ruleSets);
@@ -654,7 +654,7 @@
std::unique_ptr<RenderStyle> StyleResolver::defaultStyleForElement()
{
- m_state.setStyle(RenderStyle::create());
+ m_state.setStyle(RenderStyle::createPtr());
// Make sure our fonts are initialized if we don't inherit them from our parent style.
initializeFontStyle(documentSettings());
if (documentSettings())
@@ -1213,8 +1213,8 @@
cacheItem.ranges = matchResult.ranges;
// Note that we don't cache the original RenderStyle instance. It may be further modified.
// The RenderStyle in the cache is really just a holder for the substructures and never used as-is.
- cacheItem.renderStyle = RenderStyle::clone(style);
- cacheItem.parentRenderStyle = RenderStyle::clone(parentStyle);
+ cacheItem.renderStyle = RenderStyle::clonePtr(*style);
+ cacheItem.parentRenderStyle = RenderStyle::clonePtr(*parentStyle);
m_matchedPropertiesCache.add(hash, WTFMove(cacheItem));
}
@@ -1393,7 +1393,7 @@
void StyleResolver::applyPropertyToStyle(CSSPropertyID id, CSSValue* value, std::unique_ptr<RenderStyle> style)
{
m_state = State();
- m_state.setParentStyle(RenderStyle::clone(style.get()));
+ m_state.setParentStyle(RenderStyle::clonePtr(*style));
m_state.setStyle(WTFMove(style));
applyPropertyToCurrentStyle(id, value);
}
diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp
index 73d1e7f..1a47514 100644
--- a/Source/WebCore/dom/Document.cpp
+++ b/Source/WebCore/dom/Document.cpp
@@ -1876,10 +1876,10 @@
// font selector, so set a font selector if needed.
if (Settings* settings = this->settings()) {
if (settings->fontFallbackPrefersPictographs())
- documentStyle->fontCascade().update(&fontSelector());
+ documentStyle.fontCascade().update(&fontSelector());
}
- auto documentChange = Style::determineChange(*documentStyle, m_renderView->style());
+ auto documentChange = Style::determineChange(documentStyle, m_renderView->style());
if (documentChange != Style::NoChange)
renderView()->setStyle(WTFMove(documentStyle));
}
@@ -5835,7 +5835,7 @@
bool shouldCreatePlaceholder = is<RenderBox>(renderer);
if (shouldCreatePlaceholder) {
m_savedPlaceholderFrameRect = downcast<RenderBox>(*renderer).frameRect();
- m_savedPlaceholderRenderStyle = RenderStyle::clone(&renderer->style());
+ m_savedPlaceholderRenderStyle = RenderStyle::clonePtr(renderer->style());
}
if (m_fullScreenElement != documentElement())
@@ -5915,7 +5915,7 @@
renderer->createPlaceholder(WTFMove(m_savedPlaceholderRenderStyle), m_savedPlaceholderFrameRect);
else if (renderer && m_fullScreenRenderer && m_fullScreenRenderer->placeholder()) {
RenderBlock* placeholder = m_fullScreenRenderer->placeholder();
- renderer->createPlaceholder(RenderStyle::clone(&placeholder->style()), placeholder->frameRect());
+ renderer->createPlaceholder(RenderStyle::clonePtr(placeholder->style()), placeholder->frameRect());
}
if (m_fullScreenRenderer)
diff --git a/Source/WebCore/dom/Element.cpp b/Source/WebCore/dom/Element.cpp
index 70a8291..13639d6 100644
--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -1493,7 +1493,7 @@
return style.display() != NONE && style.display() != CONTENTS;
}
-RenderPtr<RenderElement> Element::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> Element::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return RenderElement::createFor(*this, WTFMove(style));
}
diff --git a/Source/WebCore/dom/Element.h b/Source/WebCore/dom/Element.h
index 6fad6e1..ae88137 100644
--- a/Source/WebCore/dom/Element.h
+++ b/Source/WebCore/dom/Element.h
@@ -243,7 +243,7 @@
virtual void copyNonAttributePropertiesFromElement(const Element&) { }
- virtual RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&);
+ virtual RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&);
virtual bool rendererIsNeeded(const RenderStyle&);
WEBCORE_EXPORT ShadowRoot* shadowRoot() const;
diff --git a/Source/WebCore/dom/PseudoElement.cpp b/Source/WebCore/dom/PseudoElement.cpp
index 437e7e1..f841ac1 100644
--- a/Source/WebCore/dom/PseudoElement.cpp
+++ b/Source/WebCore/dom/PseudoElement.cpp
@@ -82,7 +82,7 @@
auto* style = m_hostElement->renderer()->getCachedPseudoStyle(m_pseudoId, &parentStyle);
if (!style)
return Nullopt;
- return ElementStyle(RenderStyle::clone(style));
+ return ElementStyle(RenderStyle::clonePtr(*style));
}
void PseudoElement::didAttachRenderers()
@@ -122,7 +122,7 @@
// We only manage the style for the generated content which must be images or text.
if (!is<RenderImage>(*child) && !is<RenderQuote>(*child))
continue;
- std::unique_ptr<RenderStyle> createdStyle = RenderStyle::createStyleInheritingFromPseudoStyle(renderer.style());
+ auto createdStyle = RenderStyle::createStyleInheritingFromPseudoStyle(renderer.style());
downcast<RenderElement>(*child).setStyle(WTFMove(createdStyle));
}
}
diff --git a/Source/WebCore/html/BaseButtonInputType.cpp b/Source/WebCore/html/BaseButtonInputType.cpp
index 6cb78a0..e75a80a 100644
--- a/Source/WebCore/html/BaseButtonInputType.cpp
+++ b/Source/WebCore/html/BaseButtonInputType.cpp
@@ -52,7 +52,7 @@
return false;
}
-RenderPtr<RenderElement> BaseButtonInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> BaseButtonInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderButton>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/BaseButtonInputType.h b/Source/WebCore/html/BaseButtonInputType.h
index 683cd34..76d04fd 100644
--- a/Source/WebCore/html/BaseButtonInputType.h
+++ b/Source/WebCore/html/BaseButtonInputType.h
@@ -43,7 +43,7 @@
private:
bool shouldSaveAndRestoreFormControlState() const override;
bool appendFormData(FormDataList&, bool) const override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
bool storesValueSeparateFromAttribute() override;
void setValue(const String&, bool, TextFieldEventBehavior) override;
};
diff --git a/Source/WebCore/html/FileInputType.cpp b/Source/WebCore/html/FileInputType.cpp
index 3351ed3..25a6740 100644
--- a/Source/WebCore/html/FileInputType.cpp
+++ b/Source/WebCore/html/FileInputType.cpp
@@ -195,7 +195,7 @@
event->setDefaultHandled();
}
-RenderPtr<RenderElement> FileInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> FileInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderFileUploadControl>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/FileInputType.h b/Source/WebCore/html/FileInputType.h
index 30a83ee..ff7ecf8 100644
--- a/Source/WebCore/html/FileInputType.h
+++ b/Source/WebCore/html/FileInputType.h
@@ -58,7 +58,7 @@
bool valueMissing(const String&) const override;
String valueMissingText() const override;
void handleDOMActivateEvent(Event*) override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
bool canSetStringValue() const override;
bool canChangeFromAnotherType() const override;
FileList* files() override;
diff --git a/Source/WebCore/html/HTMLAppletElement.cpp b/Source/WebCore/html/HTMLAppletElement.cpp
index 0967e1a..262e5ac 100644
--- a/Source/WebCore/html/HTMLAppletElement.cpp
+++ b/Source/WebCore/html/HTMLAppletElement.cpp
@@ -75,7 +75,7 @@
return HTMLPlugInImageElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> HTMLAppletElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLAppletElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
if (!canEmbedJava())
return RenderElement::createFor(*this, WTFMove(style));
diff --git a/Source/WebCore/html/HTMLAppletElement.h b/Source/WebCore/html/HTMLAppletElement.h
index 48881f3..7f74d11 100644
--- a/Source/WebCore/html/HTMLAppletElement.h
+++ b/Source/WebCore/html/HTMLAppletElement.h
@@ -37,7 +37,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
RenderWidget* renderWidgetLoadingPlugin() const override;
void updateWidget(PluginCreationOption) override;
diff --git a/Source/WebCore/html/HTMLAttachmentElement.cpp b/Source/WebCore/html/HTMLAttachmentElement.cpp
index 47d63a4..7476303 100644
--- a/Source/WebCore/html/HTMLAttachmentElement.cpp
+++ b/Source/WebCore/html/HTMLAttachmentElement.cpp
@@ -51,7 +51,7 @@
return adoptRef(*new HTMLAttachmentElement(tagName, document));
}
-RenderPtr<RenderElement> HTMLAttachmentElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLAttachmentElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderAttachment>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLAttachmentElement.h b/Source/WebCore/html/HTMLAttachmentElement.h
index 5031385..a89881f 100644
--- a/Source/WebCore/html/HTMLAttachmentElement.h
+++ b/Source/WebCore/html/HTMLAttachmentElement.h
@@ -47,7 +47,7 @@
HTMLAttachmentElement(const QualifiedName&, Document&);
virtual ~HTMLAttachmentElement();
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool shouldSelectOnMouseDown() override { return true; }
bool canContainRangeEndPoint() const override { return false; }
diff --git a/Source/WebCore/html/HTMLBRElement.cpp b/Source/WebCore/html/HTMLBRElement.cpp
index 87fc83a..db1f0cc 100644
--- a/Source/WebCore/html/HTMLBRElement.cpp
+++ b/Source/WebCore/html/HTMLBRElement.cpp
@@ -70,9 +70,9 @@
HTMLElement::collectStyleForPresentationAttribute(name, value, style);
}
-RenderPtr<RenderElement> HTMLBRElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLBRElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- if (style->hasContent())
+ if (style.hasContent())
return RenderElement::createFor(*this, WTFMove(style));
return createRenderer<RenderLineBreak>(*this, WTFMove(style));
diff --git a/Source/WebCore/html/HTMLBRElement.h b/Source/WebCore/html/HTMLBRElement.h
index bd34459..fda90a7 100644
--- a/Source/WebCore/html/HTMLBRElement.h
+++ b/Source/WebCore/html/HTMLBRElement.h
@@ -41,7 +41,7 @@
bool isPresentationAttribute(const QualifiedName&) const override;
void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
} // namespace
diff --git a/Source/WebCore/html/HTMLButtonElement.cpp b/Source/WebCore/html/HTMLButtonElement.cpp
index 43ecee5..659b4fa 100644
--- a/Source/WebCore/html/HTMLButtonElement.cpp
+++ b/Source/WebCore/html/HTMLButtonElement.cpp
@@ -56,7 +56,7 @@
setAttribute(typeAttr, type);
}
-RenderPtr<RenderElement> HTMLButtonElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLButtonElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderButton>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLButtonElement.h b/Source/WebCore/html/HTMLButtonElement.h
index 1032976..c235327 100644
--- a/Source/WebCore/html/HTMLButtonElement.h
+++ b/Source/WebCore/html/HTMLButtonElement.h
@@ -45,7 +45,7 @@
const AtomicString& formControlType() const override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
// HTMLFormControlElement always creates one, but buttons don't need it.
bool alwaysCreateUserAgentShadowRoot() const override { return false; }
diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp
index 2a4ac4e..e05e5e8 100644
--- a/Source/WebCore/html/HTMLCanvasElement.cpp
+++ b/Source/WebCore/html/HTMLCanvasElement.cpp
@@ -124,7 +124,7 @@
HTMLElement::parseAttribute(name, value);
}
-RenderPtr<RenderElement> HTMLCanvasElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> HTMLCanvasElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
Frame* frame = document().frame();
if (frame && frame->script().canExecuteScripts(NotAboutToExecuteScript)) {
diff --git a/Source/WebCore/html/HTMLCanvasElement.h b/Source/WebCore/html/HTMLCanvasElement.h
index 4aeb752..d25b8ea 100644
--- a/Source/WebCore/html/HTMLCanvasElement.h
+++ b/Source/WebCore/html/HTMLCanvasElement.h
@@ -150,7 +150,7 @@
HTMLCanvasElement(const QualifiedName&, Document&);
void parseAttribute(const QualifiedName&, const AtomicString&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool canContainRangeEndPoint() const override;
bool canStartSelection() const override;
diff --git a/Source/WebCore/html/HTMLDetailsElement.cpp b/Source/WebCore/html/HTMLDetailsElement.cpp
index 9d84351..cf41a47 100644
--- a/Source/WebCore/html/HTMLDetailsElement.cpp
+++ b/Source/WebCore/html/HTMLDetailsElement.cpp
@@ -87,7 +87,7 @@
ASSERT(hasTagName(detailsTag));
}
-RenderPtr<RenderElement> HTMLDetailsElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLDetailsElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderBlockFlow>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLDetailsElement.h b/Source/WebCore/html/HTMLDetailsElement.h
index b4fb1e6..54ec394 100644
--- a/Source/WebCore/html/HTMLDetailsElement.h
+++ b/Source/WebCore/html/HTMLDetailsElement.h
@@ -38,7 +38,7 @@
private:
HTMLDetailsElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void didAddUserAgentShadowRoot(ShadowRoot*) override;
diff --git a/Source/WebCore/html/HTMLElement.cpp b/Source/WebCore/html/HTMLElement.cpp
index 56aeed59..601777d 100644
--- a/Source/WebCore/html/HTMLElement.cpp
+++ b/Source/WebCore/html/HTMLElement.cpp
@@ -868,7 +868,7 @@
return StyledElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> HTMLElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return RenderElement::createFor(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLElement.h b/Source/WebCore/html/HTMLElement.h
index 7c36639..721f4b5 100644
--- a/Source/WebCore/html/HTMLElement.h
+++ b/Source/WebCore/html/HTMLElement.h
@@ -77,7 +77,7 @@
bool ieForbidsInsertHTML() const;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
HTMLFormElement* form() const { return virtualForm(); }
diff --git a/Source/WebCore/html/HTMLFieldSetElement.cpp b/Source/WebCore/html/HTMLFieldSetElement.cpp
index 4b2d203..dd5df2c 100644
--- a/Source/WebCore/html/HTMLFieldSetElement.cpp
+++ b/Source/WebCore/html/HTMLFieldSetElement.cpp
@@ -150,7 +150,7 @@
return fieldset;
}
-RenderPtr<RenderElement> HTMLFieldSetElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLFieldSetElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderFieldset>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLFieldSetElement.h b/Source/WebCore/html/HTMLFieldSetElement.h
index caadbe3..c2c6734 100644
--- a/Source/WebCore/html/HTMLFieldSetElement.h
+++ b/Source/WebCore/html/HTMLFieldSetElement.h
@@ -53,7 +53,7 @@
bool isEnumeratable() const override { return true; }
bool supportsFocus() const override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
const AtomicString& formControlType() const override;
bool computeWillValidate() const override { return false; }
void disabledAttributeChanged() override;
diff --git a/Source/WebCore/html/HTMLFrameElement.cpp b/Source/WebCore/html/HTMLFrameElement.cpp
index f8566aa..6ff11df 100644
--- a/Source/WebCore/html/HTMLFrameElement.cpp
+++ b/Source/WebCore/html/HTMLFrameElement.cpp
@@ -53,7 +53,7 @@
return isURLAllowed();
}
-RenderPtr<RenderElement> HTMLFrameElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLFrameElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderFrame>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLFrameElement.h b/Source/WebCore/html/HTMLFrameElement.h
index 344cac8..6df8686 100644
--- a/Source/WebCore/html/HTMLFrameElement.h
+++ b/Source/WebCore/html/HTMLFrameElement.h
@@ -42,7 +42,7 @@
void didAttachRenderers() override;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void parseAttribute(const QualifiedName&, const AtomicString&) override;
diff --git a/Source/WebCore/html/HTMLFrameSetElement.cpp b/Source/WebCore/html/HTMLFrameSetElement.cpp
index 8f0f123..a8ee824 100644
--- a/Source/WebCore/html/HTMLFrameSetElement.cpp
+++ b/Source/WebCore/html/HTMLFrameSetElement.cpp
@@ -157,9 +157,9 @@
return !style.isPlaceholderStyle();
}
-RenderPtr<RenderElement> HTMLFrameSetElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLFrameSetElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- if (style->hasContent())
+ if (style.hasContent())
return RenderElement::createFor(*this, WTFMove(style));
return createRenderer<RenderFrameSet>(*this, WTFMove(style));
diff --git a/Source/WebCore/html/HTMLFrameSetElement.h b/Source/WebCore/html/HTMLFrameSetElement.h
index 325912f..113da2d 100644
--- a/Source/WebCore/html/HTMLFrameSetElement.h
+++ b/Source/WebCore/html/HTMLFrameSetElement.h
@@ -56,7 +56,7 @@
void willAttachRenderers() override;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void defaultEventHandler(Event*) override;
diff --git a/Source/WebCore/html/HTMLIFrameElement.cpp b/Source/WebCore/html/HTMLIFrameElement.cpp
index 0d83179..31368ae 100644
--- a/Source/WebCore/html/HTMLIFrameElement.cpp
+++ b/Source/WebCore/html/HTMLIFrameElement.cpp
@@ -100,7 +100,7 @@
return isURLAllowed() && style.display() != NONE;
}
-RenderPtr<RenderElement> HTMLIFrameElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLIFrameElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderIFrame>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLIFrameElement.h b/Source/WebCore/html/HTMLIFrameElement.h
index 346ded8..0b50dd0 100644
--- a/Source/WebCore/html/HTMLIFrameElement.h
+++ b/Source/WebCore/html/HTMLIFrameElement.h
@@ -48,7 +48,7 @@
void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
std::unique_ptr<DOMTokenList> m_sandbox;
};
diff --git a/Source/WebCore/html/HTMLImageElement.cpp b/Source/WebCore/html/HTMLImageElement.cpp
index a68ea59..8054458 100644
--- a/Source/WebCore/html/HTMLImageElement.cpp
+++ b/Source/WebCore/html/HTMLImageElement.cpp
@@ -256,9 +256,9 @@
return fastGetAttribute(titleAttr);
}
-RenderPtr<RenderElement> HTMLImageElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- if (style->hasContent())
+ if (style.hasContent())
return RenderElement::createFor(*this, WTFMove(style));
return createRenderer<RenderImage>(*this, WTFMove(style), nullptr, m_imageDevicePixelRatio);
diff --git a/Source/WebCore/html/HTMLImageElement.h b/Source/WebCore/html/HTMLImageElement.h
index c1018e2..5a72acd 100644
--- a/Source/WebCore/html/HTMLImageElement.h
+++ b/Source/WebCore/html/HTMLImageElement.h
@@ -105,7 +105,7 @@
void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
void didAttachRenderers() override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void setBestFitURLAndDPRFromImageCandidate(const ImageCandidate&);
bool canStartSelection() const override;
diff --git a/Source/WebCore/html/HTMLInputElement.cpp b/Source/WebCore/html/HTMLInputElement.cpp
index eb7b435..5fa25f7 100644
--- a/Source/WebCore/html/HTMLInputElement.cpp
+++ b/Source/WebCore/html/HTMLInputElement.cpp
@@ -760,7 +760,7 @@
return m_inputType->rendererIsNeeded() && HTMLTextFormControlElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> HTMLInputElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLInputElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return m_inputType->createInputRenderer(WTFMove(style));
}
@@ -1875,23 +1875,23 @@
return document().focusedElement() != this && style.textOverflow() == TextOverflowEllipsis;
}
-std::unique_ptr<RenderStyle> HTMLInputElement::createInnerTextStyle(const RenderStyle& style) const
+RenderStyle HTMLInputElement::createInnerTextStyle(const RenderStyle& style) const
{
auto textBlockStyle = RenderStyle::create();
- textBlockStyle->inheritFrom(&style);
- adjustInnerTextStyle(style, *textBlockStyle);
+ textBlockStyle.inheritFrom(&style);
+ adjustInnerTextStyle(style, textBlockStyle);
- textBlockStyle->setWhiteSpace(PRE);
- textBlockStyle->setOverflowWrap(NormalOverflowWrap);
- textBlockStyle->setOverflowX(OHIDDEN);
- textBlockStyle->setOverflowY(OHIDDEN);
- textBlockStyle->setTextOverflow(shouldTruncateText(style) ? TextOverflowEllipsis : TextOverflowClip);
+ textBlockStyle.setWhiteSpace(PRE);
+ textBlockStyle.setOverflowWrap(NormalOverflowWrap);
+ textBlockStyle.setOverflowX(OHIDDEN);
+ textBlockStyle.setOverflowY(OHIDDEN);
+ textBlockStyle.setTextOverflow(shouldTruncateText(style) ? TextOverflowEllipsis : TextOverflowClip);
// Do not allow line-height to be smaller than our default.
- if (textBlockStyle->fontMetrics().lineSpacing() > style.computedLineHeight())
- textBlockStyle->setLineHeight(RenderStyle::initialLineHeight());
+ if (textBlockStyle.fontMetrics().lineSpacing() > style.computedLineHeight())
+ textBlockStyle.setLineHeight(RenderStyle::initialLineHeight());
- textBlockStyle->setDisplay(BLOCK);
+ textBlockStyle.setDisplay(BLOCK);
return textBlockStyle;
}
diff --git a/Source/WebCore/html/HTMLInputElement.h b/Source/WebCore/html/HTMLInputElement.h
index fbc7001..ff167b2 100644
--- a/Source/WebCore/html/HTMLInputElement.h
+++ b/Source/WebCore/html/HTMLInputElement.h
@@ -142,7 +142,7 @@
HTMLElement* containerElement() const;
TextControlInnerTextElement* innerTextElement() const final;
- std::unique_ptr<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
+ RenderStyle createInnerTextStyle(const RenderStyle&) const override;
HTMLElement* innerBlockElement() const;
HTMLElement* innerSpinButtonElement() const;
@@ -201,7 +201,7 @@
bool canHaveSelection() const;
bool rendererIsNeeded(const RenderStyle&) final;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
void willAttachRenderers() final;
void didAttachRenderers() final;
void didDetachRenderers() final;
diff --git a/Source/WebCore/html/HTMLLinkElement.cpp b/Source/WebCore/html/HTMLLinkElement.cpp
index 1aa86a5..cf3743d 100644
--- a/Source/WebCore/html/HTMLLinkElement.cpp
+++ b/Source/WebCore/html/HTMLLinkElement.cpp
@@ -237,11 +237,11 @@
bool mediaQueryMatches = true;
if (!m_media.isEmpty()) {
- std::unique_ptr<RenderStyle> documentStyle;
+ Optional<RenderStyle> documentStyle;
if (document().hasLivingRenderTree())
documentStyle = Style::resolveForDocument(document());
RefPtr<MediaQuerySet> media = MediaQuerySet::createAllowingDescriptionSyntax(m_media);
- MediaQueryEvaluator evaluator(document().frame()->view()->mediaType(), document().frame(), documentStyle.get());
+ MediaQueryEvaluator evaluator(document().frame()->view()->mediaType(), document().frame(), documentStyle ? &*documentStyle : nullptr);
mediaQueryMatches = evaluator.eval(media.get());
}
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp
index 88b6f80..546a2c7 100644
--- a/Source/WebCore/html/HTMLMediaElement.cpp
+++ b/Source/WebCore/html/HTMLMediaElement.cpp
@@ -736,7 +736,7 @@
return controls() && HTMLElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> HTMLMediaElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLMediaElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMedia>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h
index 863f8c5..05a1575 100644
--- a/Source/WebCore/html/HTMLMediaElement.h
+++ b/Source/WebCore/html/HTMLMediaElement.h
@@ -482,7 +482,7 @@
void endIgnoringTrackDisplayUpdateRequests();
#endif
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
#if ENABLE(MEDIA_CONTROLS_SCRIPT)
bool mediaControlsDependOnPageScaleFactor() const { return m_mediaControlsDependOnPageScaleFactor; }
diff --git a/Source/WebCore/html/HTMLMeterElement.cpp b/Source/WebCore/html/HTMLMeterElement.cpp
index c719ad2..185c995 100644
--- a/Source/WebCore/html/HTMLMeterElement.cpp
+++ b/Source/WebCore/html/HTMLMeterElement.cpp
@@ -57,9 +57,9 @@
return meter;
}
-RenderPtr<RenderElement> HTMLMeterElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLMeterElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- if (!document().page()->theme().supportsMeter(style->appearance()))
+ if (!document().page()->theme().supportsMeter(style.appearance()))
return RenderElement::createFor(*this, WTFMove(style));
return createRenderer<RenderMeter>(*this, WTFMove(style));
diff --git a/Source/WebCore/html/HTMLMeterElement.h b/Source/WebCore/html/HTMLMeterElement.h
index a4185a0..dfa7826 100644
--- a/Source/WebCore/html/HTMLMeterElement.h
+++ b/Source/WebCore/html/HTMLMeterElement.h
@@ -70,7 +70,7 @@
bool supportLabels() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
void parseAttribute(const QualifiedName&, const AtomicString&) override;
diff --git a/Source/WebCore/html/HTMLPlugInElement.cpp b/Source/WebCore/html/HTMLPlugInElement.cpp
index 11f97b4..b8e5317 100644
--- a/Source/WebCore/html/HTMLPlugInElement.cpp
+++ b/Source/WebCore/html/HTMLPlugInElement.cpp
@@ -294,7 +294,7 @@
#endif /* ENABLE(NETSCAPE_PLUGIN_API) */
-RenderPtr<RenderElement> HTMLPlugInElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> HTMLPlugInElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
if (m_pluginReplacement && m_pluginReplacement->willCreateRenderer())
return m_pluginReplacement->createElementRenderer(*this, WTFMove(style), insertionPosition);
diff --git a/Source/WebCore/html/HTMLPlugInElement.h b/Source/WebCore/html/HTMLPlugInElement.h
index 1ac0079..56cebc2 100644
--- a/Source/WebCore/html/HTMLPlugInElement.h
+++ b/Source/WebCore/html/HTMLPlugInElement.h
@@ -103,7 +103,7 @@
void defaultEventHandler(Event*) override;
virtual bool requestObject(const String& url, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void didAddUserAgentShadowRoot(ShadowRoot*) override;
// Subclasses should use guardedDispatchBeforeLoadEvent instead of calling dispatchBeforeLoadEvent directly.
diff --git a/Source/WebCore/html/HTMLPlugInImageElement.cpp b/Source/WebCore/html/HTMLPlugInImageElement.cpp
index 9326b01..fc0ef06 100644
--- a/Source/WebCore/html/HTMLPlugInImageElement.cpp
+++ b/Source/WebCore/html/HTMLPlugInImageElement.cpp
@@ -194,7 +194,7 @@
return false;
}
-RenderPtr<RenderElement> HTMLPlugInImageElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> HTMLPlugInImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
ASSERT(!document().inPageCache());
diff --git a/Source/WebCore/html/HTMLPlugInImageElement.h b/Source/WebCore/html/HTMLPlugInImageElement.h
index 88cd5f4..c6040bc 100644
--- a/Source/WebCore/html/HTMLPlugInImageElement.h
+++ b/Source/WebCore/html/HTMLPlugInImageElement.h
@@ -114,7 +114,7 @@
void finishParsingChildren() final;
void didAddUserAgentShadowRoot(ShadowRoot*) final;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
bool willRecalcStyle(Style::Change) final;
void didAttachRenderers() final;
diff --git a/Source/WebCore/html/HTMLProgressElement.cpp b/Source/WebCore/html/HTMLProgressElement.cpp
index ebc3a49..45005f3 100644
--- a/Source/WebCore/html/HTMLProgressElement.cpp
+++ b/Source/WebCore/html/HTMLProgressElement.cpp
@@ -56,9 +56,9 @@
return progress;
}
-RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLProgressElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
- if (!style->hasAppearance())
+ if (!style.hasAppearance())
return RenderElement::createFor(*this, WTFMove(style));
return createRenderer<RenderProgress>(*this, WTFMove(style));
diff --git a/Source/WebCore/html/HTMLProgressElement.h b/Source/WebCore/html/HTMLProgressElement.h
index 1a75ffe..0ad5d7c 100644
--- a/Source/WebCore/html/HTMLProgressElement.h
+++ b/Source/WebCore/html/HTMLProgressElement.h
@@ -52,7 +52,7 @@
bool shouldAppearIndeterminate() const override;
bool supportLabels() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
RenderProgress* renderProgress() const;
diff --git a/Source/WebCore/html/HTMLSelectElement.cpp b/Source/WebCore/html/HTMLSelectElement.cpp
index a863dd0..31c3401 100644
--- a/Source/WebCore/html/HTMLSelectElement.cpp
+++ b/Source/WebCore/html/HTMLSelectElement.cpp
@@ -339,7 +339,7 @@
return !usesMenuList();
}
-RenderPtr<RenderElement> HTMLSelectElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLSelectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
#if !PLATFORM(IOS)
if (usesMenuList())
diff --git a/Source/WebCore/html/HTMLSelectElement.h b/Source/WebCore/html/HTMLSelectElement.h
index cfbf96b..1792bf6 100644
--- a/Source/WebCore/html/HTMLSelectElement.h
+++ b/Source/WebCore/html/HTMLSelectElement.h
@@ -131,7 +131,7 @@
bool isPresentationAttribute(const QualifiedName&) const final;
bool childShouldCreateRenderer(const Node&) const final;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
bool appendFormData(FormDataList&, bool) final;
void reset() final;
diff --git a/Source/WebCore/html/HTMLSummaryElement.cpp b/Source/WebCore/html/HTMLSummaryElement.cpp
index ec32b79..fc6c2c8 100644
--- a/Source/WebCore/html/HTMLSummaryElement.cpp
+++ b/Source/WebCore/html/HTMLSummaryElement.cpp
@@ -49,7 +49,7 @@
ASSERT(hasTagName(summaryTag));
}
-RenderPtr<RenderElement> HTMLSummaryElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLSummaryElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderBlockFlow>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLSummaryElement.h b/Source/WebCore/html/HTMLSummaryElement.h
index 78b93a6..784defe 100644
--- a/Source/WebCore/html/HTMLSummaryElement.h
+++ b/Source/WebCore/html/HTMLSummaryElement.h
@@ -37,7 +37,7 @@
private:
HTMLSummaryElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void defaultEventHandler(Event*) override;
void didAddUserAgentShadowRoot(ShadowRoot*) override;
diff --git a/Source/WebCore/html/HTMLTextAreaElement.cpp b/Source/WebCore/html/HTMLTextAreaElement.cpp
index 79fc2f8..d5cd82d 100644
--- a/Source/WebCore/html/HTMLTextAreaElement.cpp
+++ b/Source/WebCore/html/HTMLTextAreaElement.cpp
@@ -208,7 +208,7 @@
updateValidity();
}
-RenderPtr<RenderElement> HTMLTextAreaElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLTextAreaElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderTextControlMultiLine>(*this, WTFMove(style));
}
@@ -523,17 +523,17 @@
return !isDisabledFormControl();
}
-std::unique_ptr<RenderStyle> HTMLTextAreaElement::createInnerTextStyle(const RenderStyle& style) const
+RenderStyle HTMLTextAreaElement::createInnerTextStyle(const RenderStyle& style) const
{
auto textBlockStyle = RenderStyle::create();
- textBlockStyle->inheritFrom(&style);
- adjustInnerTextStyle(style, *textBlockStyle);
- textBlockStyle->setDisplay(BLOCK);
+ textBlockStyle.inheritFrom(&style);
+ adjustInnerTextStyle(style, textBlockStyle);
+ textBlockStyle.setDisplay(BLOCK);
#if PLATFORM(IOS)
// We're adding three extra pixels of padding to line textareas up with text fields.
- textBlockStyle->setPaddingLeft(Length(3, Fixed));
- textBlockStyle->setPaddingRight(Length(3, Fixed));
+ textBlockStyle.setPaddingLeft(Length(3, Fixed));
+ textBlockStyle.setPaddingRight(Length(3, Fixed));
#endif
return textBlockStyle;
diff --git a/Source/WebCore/html/HTMLTextAreaElement.h b/Source/WebCore/html/HTMLTextAreaElement.h
index 5e551b2..0b5a61c 100644
--- a/Source/WebCore/html/HTMLTextAreaElement.h
+++ b/Source/WebCore/html/HTMLTextAreaElement.h
@@ -54,7 +54,7 @@
bool isValidValue(const String&) const;
TextControlInnerTextElement* innerTextElement() const override;
- std::unique_ptr<RenderStyle> createInnerTextStyle(const RenderStyle&) const override;
+ RenderStyle createInnerTextStyle(const RenderStyle&) const override;
void rendererWillBeDestroyed();
@@ -105,7 +105,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
bool isPresentationAttribute(const QualifiedName&) const override;
void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStyleProperties&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool appendFormData(FormDataList&, bool) override;
void reset() override;
bool hasCustomFocusLogic() const override;
diff --git a/Source/WebCore/html/HTMLTextFormControlElement.h b/Source/WebCore/html/HTMLTextFormControlElement.h
index af8992d..6f58d4c 100644
--- a/Source/WebCore/html/HTMLTextFormControlElement.h
+++ b/Source/WebCore/html/HTMLTextFormControlElement.h
@@ -80,7 +80,7 @@
virtual String value() const = 0;
virtual TextControlInnerTextElement* innerTextElement() const = 0;
- virtual std::unique_ptr<RenderStyle> createInnerTextStyle(const RenderStyle&) const = 0;
+ virtual RenderStyle createInnerTextStyle(const RenderStyle&) const = 0;
void selectionChanged(bool shouldFireSelectEvent);
WEBCORE_EXPORT bool lastChangeWasUserEdit() const;
diff --git a/Source/WebCore/html/HTMLVideoElement.cpp b/Source/WebCore/html/HTMLVideoElement.cpp
index 8aa0752..9ed6117 100644
--- a/Source/WebCore/html/HTMLVideoElement.cpp
+++ b/Source/WebCore/html/HTMLVideoElement.cpp
@@ -73,7 +73,7 @@
return HTMLElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> HTMLVideoElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLVideoElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderVideo>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLVideoElement.h b/Source/WebCore/html/HTMLVideoElement.h
index dbd89d7..e8a9bc9 100644
--- a/Source/WebCore/html/HTMLVideoElement.h
+++ b/Source/WebCore/html/HTMLVideoElement.h
@@ -78,7 +78,7 @@
bool shouldDisplayPosterImage() const { return displayMode() == Poster || displayMode() == PosterWaitingForVideo; }
URL posterImageURL() const;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
#if ENABLE(VIDEO_PRESENTATION_MODE)
bool webkitSupportsPresentationMode(const String&) const;
diff --git a/Source/WebCore/html/HTMLWBRElement.cpp b/Source/WebCore/html/HTMLWBRElement.cpp
index d820501..d87fdbc 100644
--- a/Source/WebCore/html/HTMLWBRElement.cpp
+++ b/Source/WebCore/html/HTMLWBRElement.cpp
@@ -44,7 +44,7 @@
ASSERT(hasTagName(wbrTag));
}
-RenderPtr<RenderElement> HTMLWBRElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> HTMLWBRElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderLineBreak>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/HTMLWBRElement.h b/Source/WebCore/html/HTMLWBRElement.h
index 6cf61d2..490b264 100644
--- a/Source/WebCore/html/HTMLWBRElement.h
+++ b/Source/WebCore/html/HTMLWBRElement.h
@@ -37,7 +37,7 @@
private:
HTMLWBRElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/HiddenInputType.cpp b/Source/WebCore/html/HiddenInputType.cpp
index 0f594d7..e6f732f 100644
--- a/Source/WebCore/html/HiddenInputType.cpp
+++ b/Source/WebCore/html/HiddenInputType.cpp
@@ -67,7 +67,7 @@
return false;
}
-RenderPtr<RenderElement> HiddenInputType::createInputRenderer(std::unique_ptr<RenderStyle>)
+RenderPtr<RenderElement> HiddenInputType::createInputRenderer(RenderStyle&&)
{
ASSERT_NOT_REACHED();
return nullptr;
diff --git a/Source/WebCore/html/HiddenInputType.h b/Source/WebCore/html/HiddenInputType.h
index d286435..c92ec18 100644
--- a/Source/WebCore/html/HiddenInputType.h
+++ b/Source/WebCore/html/HiddenInputType.h
@@ -44,7 +44,7 @@
FormControlState saveFormControlState() const override;
void restoreFormControlState(const FormControlState&) override;
bool supportsValidation() const override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
void accessKeyAction(bool sendMouseEvents) override;
bool rendererIsNeeded() override;
bool storesValueSeparateFromAttribute() override;
diff --git a/Source/WebCore/html/ImageInputType.cpp b/Source/WebCore/html/ImageInputType.cpp
index 89fdc39..cac5502 100644
--- a/Source/WebCore/html/ImageInputType.cpp
+++ b/Source/WebCore/html/ImageInputType.cpp
@@ -102,7 +102,7 @@
event->setDefaultHandled();
}
-RenderPtr<RenderElement> ImageInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> ImageInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderImage>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/ImageInputType.h b/Source/WebCore/html/ImageInputType.h
index c18b0ec..1e6e937 100644
--- a/Source/WebCore/html/ImageInputType.h
+++ b/Source/WebCore/html/ImageInputType.h
@@ -47,7 +47,7 @@
bool isFormDataAppendable() const override;
bool appendFormData(FormDataList&, bool) const override;
bool supportsValidation() const override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
void handleDOMActivateEvent(Event*) override;
void altAttributeChanged() override;
void srcAttributeChanged() override;
diff --git a/Source/WebCore/html/InputType.cpp b/Source/WebCore/html/InputType.cpp
index 1c65177..4653a02 100644
--- a/Source/WebCore/html/InputType.cpp
+++ b/Source/WebCore/html/InputType.cpp
@@ -479,7 +479,7 @@
return element().form();
}
-RenderPtr<RenderElement> InputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> InputType::createInputRenderer(RenderStyle&& style)
{
return RenderPtr<RenderElement>(RenderElement::createFor(element(), WTFMove(style)));
}
diff --git a/Source/WebCore/html/InputType.h b/Source/WebCore/html/InputType.h
index 8e6e1c0..4bcb843 100644
--- a/Source/WebCore/html/InputType.h
+++ b/Source/WebCore/html/InputType.h
@@ -232,7 +232,7 @@
// Miscellaneous functions.
virtual bool rendererIsNeeded();
- virtual RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>);
+ virtual RenderPtr<RenderElement> createInputRenderer(RenderStyle&&);
virtual void addSearchResult();
virtual void attach();
virtual void detach();
diff --git a/Source/WebCore/html/RangeInputType.cpp b/Source/WebCore/html/RangeInputType.cpp
index fe2d06c..34cf913 100644
--- a/Source/WebCore/html/RangeInputType.cpp
+++ b/Source/WebCore/html/RangeInputType.cpp
@@ -285,7 +285,7 @@
return &typedSliderThumbElement();
}
-RenderPtr<RenderElement> RangeInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> RangeInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderSlider>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/RangeInputType.h b/Source/WebCore/html/RangeInputType.h
index 8909448..e6bc788 100644
--- a/Source/WebCore/html/RangeInputType.h
+++ b/Source/WebCore/html/RangeInputType.h
@@ -54,7 +54,7 @@
void handleMouseDownEvent(MouseEvent*) override;
#endif
void handleKeydownEvent(KeyboardEvent*) override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
void createShadowSubtree() override;
Decimal parseToNumber(const String&, const Decimal&) const override;
String serialize(const Decimal&) const override;
diff --git a/Source/WebCore/html/RubyElement.cpp b/Source/WebCore/html/RubyElement.cpp
index fc5dcb6..b91aed8 100644
--- a/Source/WebCore/html/RubyElement.cpp
+++ b/Source/WebCore/html/RubyElement.cpp
@@ -43,11 +43,11 @@
return adoptRef(*new RubyElement(tagName, document));
}
-RenderPtr<RenderElement> RubyElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> RubyElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
- if (style->display() == INLINE)
+ if (style.display() == INLINE)
return createRenderer<RenderRubyAsInline>(*this, WTFMove(style));
- if (style->display() == BLOCK || style->display() == INLINE_BLOCK)
+ if (style.display() == BLOCK || style.display() == INLINE_BLOCK)
return createRenderer<RenderRubyAsBlock>(*this, WTFMove(style));
return HTMLElement::createElementRenderer(WTFMove(style), insertionPosition);
}
diff --git a/Source/WebCore/html/RubyElement.h b/Source/WebCore/html/RubyElement.h
index d73079a..d31cd52 100644
--- a/Source/WebCore/html/RubyElement.h
+++ b/Source/WebCore/html/RubyElement.h
@@ -36,7 +36,7 @@
private:
RubyElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
}
diff --git a/Source/WebCore/html/RubyTextElement.cpp b/Source/WebCore/html/RubyTextElement.cpp
index b249f52..500eb72 100644
--- a/Source/WebCore/html/RubyTextElement.cpp
+++ b/Source/WebCore/html/RubyTextElement.cpp
@@ -45,10 +45,10 @@
return adoptRef(*new RubyTextElement(tagName, document));
}
-RenderPtr<RenderElement> RubyTextElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> RubyTextElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
// RenderRubyText requires its parent to be RenderRubyRun.
- if (isRuby(insertionPosition.parent()) && style->display() == BLOCK)
+ if (isRuby(insertionPosition.parent()) && style.display() == BLOCK)
return createRenderer<RenderRubyText>(*this, WTFMove(style));
return HTMLElement::createElementRenderer(WTFMove(style), insertionPosition);
}
diff --git a/Source/WebCore/html/RubyTextElement.h b/Source/WebCore/html/RubyTextElement.h
index ce05adb..fd88291 100644
--- a/Source/WebCore/html/RubyTextElement.h
+++ b/Source/WebCore/html/RubyTextElement.h
@@ -36,7 +36,7 @@
private:
RubyTextElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
}
diff --git a/Source/WebCore/html/SearchInputType.cpp b/Source/WebCore/html/SearchInputType.cpp
index 85d317c..7acd28e 100644
--- a/Source/WebCore/html/SearchInputType.cpp
+++ b/Source/WebCore/html/SearchInputType.cpp
@@ -76,7 +76,7 @@
updateResultButtonPseudoType(*m_resultsButton, element().maxResults());
}
-RenderPtr<RenderElement> SearchInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> SearchInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderSearchField>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/SearchInputType.h b/Source/WebCore/html/SearchInputType.h
index 8330325..d8bc7a56 100644
--- a/Source/WebCore/html/SearchInputType.h
+++ b/Source/WebCore/html/SearchInputType.h
@@ -48,7 +48,7 @@
private:
void addSearchResult() override;
void maxResultsAttributeChanged() override;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
const AtomicString& formControlType() const override;
bool isSearchField() const override;
bool needsContainer() const override;
diff --git a/Source/WebCore/html/TextFieldInputType.cpp b/Source/WebCore/html/TextFieldInputType.cpp
index fee56e3..4936156 100644
--- a/Source/WebCore/html/TextFieldInputType.cpp
+++ b/Source/WebCore/html/TextFieldInputType.cpp
@@ -231,7 +231,7 @@
|| InputType::shouldSubmitImplicitly(event);
}
-RenderPtr<RenderElement> TextFieldInputType::createInputRenderer(std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> TextFieldInputType::createInputRenderer(RenderStyle&& style)
{
return createRenderer<RenderTextControlSingleLine>(element(), WTFMove(style));
}
diff --git a/Source/WebCore/html/TextFieldInputType.h b/Source/WebCore/html/TextFieldInputType.h
index 4b0c9bf..dbfbdd0 100644
--- a/Source/WebCore/html/TextFieldInputType.h
+++ b/Source/WebCore/html/TextFieldInputType.h
@@ -82,7 +82,7 @@
void handleBeforeTextInsertedEvent(BeforeTextInsertedEvent*) final;
void forwardEvent(Event*) final;
bool shouldSubmitImplicitly(Event*) final;
- RenderPtr<RenderElement> createInputRenderer(std::unique_ptr<RenderStyle>) override;
+ RenderPtr<RenderElement> createInputRenderer(RenderStyle&&) override;
bool shouldUseInputMethod() const override;
bool shouldRespectListAttribute() override;
HTMLElement* placeholderElement() const final;
diff --git a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index 704fc20..bfc9f32 100644
--- a/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -2216,7 +2216,7 @@
// Map the <canvas> font into the text style. If the font uses keywords like larger/smaller, these will work
// relative to the canvas.
- auto newStyle = RenderStyle::create();
+ auto newStyle = RenderStyle::createPtr();
Document& document = canvas()->document();
document.updateStyleIfNeeded();
diff --git a/Source/WebCore/html/shadow/DetailsMarkerControl.cpp b/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
index ef2ecb0..bdc8992 100644
--- a/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
+++ b/Source/WebCore/html/shadow/DetailsMarkerControl.cpp
@@ -50,7 +50,7 @@
setPseudo(AtomicString("-webkit-details-marker", AtomicString::ConstructFromLiteral));
}
-RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> DetailsMarkerControl::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderDetailsMarker>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/DetailsMarkerControl.h b/Source/WebCore/html/shadow/DetailsMarkerControl.h
index 13dfa4d..f5bc990 100644
--- a/Source/WebCore/html/shadow/DetailsMarkerControl.h
+++ b/Source/WebCore/html/shadow/DetailsMarkerControl.h
@@ -43,7 +43,7 @@
private:
DetailsMarkerControl(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool rendererIsNeeded(const RenderStyle&) override;
};
diff --git a/Source/WebCore/html/shadow/MediaControlElements.cpp b/Source/WebCore/html/shadow/MediaControlElements.cpp
index ec8a8af..286f15a 100644
--- a/Source/WebCore/html/shadow/MediaControlElements.cpp
+++ b/Source/WebCore/html/shadow/MediaControlElements.cpp
@@ -307,7 +307,7 @@
}
}
-RenderPtr<RenderElement> MediaControlTimelineContainerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MediaControlTimelineContainerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMediaControlTimelineContainer>(*this, WTFMove(style));
}
@@ -327,7 +327,7 @@
return element;
}
-RenderPtr<RenderElement> MediaControlVolumeSliderContainerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MediaControlVolumeSliderContainerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMediaVolumeSliderContainer>(*this, WTFMove(style));
}
@@ -1082,7 +1082,7 @@
return element;
}
-RenderPtr<RenderElement> MediaControlTextTrackContainerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MediaControlTextTrackContainerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderTextTrackContainerElement>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/MediaControlElements.h b/Source/WebCore/html/shadow/MediaControlElements.h
index 7ed8786..6102a8e 100644
--- a/Source/WebCore/html/shadow/MediaControlElements.h
+++ b/Source/WebCore/html/shadow/MediaControlElements.h
@@ -110,7 +110,7 @@
private:
explicit MediaControlTimelineContainerElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
// ----------------------------
@@ -128,7 +128,7 @@
void defaultEventHandler(Event*) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
// ----------------------------
@@ -456,7 +456,7 @@
explicit MediaControlTextTrackContainerElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
RefPtr<Image> createTextTrackRepresentationImage() override;
void textTrackRepresentationBoundsChanged(const IntRect&) override;
diff --git a/Source/WebCore/html/shadow/MeterShadowElement.cpp b/Source/WebCore/html/shadow/MeterShadowElement.cpp
index 6abb16a..7d8fa17 100644
--- a/Source/WebCore/html/shadow/MeterShadowElement.cpp
+++ b/Source/WebCore/html/shadow/MeterShadowElement.cpp
@@ -73,7 +73,7 @@
return render && !render->theme().supportsMeter(render->style().appearance()) && HTMLDivElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> MeterInnerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MeterInnerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMeter>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/MeterShadowElement.h b/Source/WebCore/html/shadow/MeterShadowElement.h
index 312580e..94d655f 100644
--- a/Source/WebCore/html/shadow/MeterShadowElement.h
+++ b/Source/WebCore/html/shadow/MeterShadowElement.h
@@ -60,7 +60,7 @@
MeterInnerElement(Document&);
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
inline Ref<MeterInnerElement> MeterInnerElement::create(Document& document)
diff --git a/Source/WebCore/html/shadow/ProgressShadowElement.cpp b/Source/WebCore/html/shadow/ProgressShadowElement.cpp
index 38367a6..e23ac21 100644
--- a/Source/WebCore/html/shadow/ProgressShadowElement.cpp
+++ b/Source/WebCore/html/shadow/ProgressShadowElement.cpp
@@ -60,7 +60,7 @@
{
}
-RenderPtr<RenderElement> ProgressInnerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> ProgressInnerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderProgress>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/ProgressShadowElement.h b/Source/WebCore/html/shadow/ProgressShadowElement.h
index f02599a..75b4924 100644
--- a/Source/WebCore/html/shadow/ProgressShadowElement.h
+++ b/Source/WebCore/html/shadow/ProgressShadowElement.h
@@ -57,7 +57,7 @@
private:
ProgressInnerElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool rendererIsNeeded(const RenderStyle&) override;
};
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.cpp b/Source/WebCore/html/shadow/SliderThumbElement.cpp
index 850bc99..6507126 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.cpp
+++ b/Source/WebCore/html/shadow/SliderThumbElement.cpp
@@ -78,7 +78,7 @@
// --------------------------------
-RenderSliderThumb::RenderSliderThumb(SliderThumbElement& element, std::unique_ptr<RenderStyle> style)
+RenderSliderThumb::RenderSliderThumb(SliderThumbElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
@@ -112,7 +112,7 @@
// http://webkit.org/b/62535
class RenderSliderContainer final : public RenderFlexibleBox {
public:
- RenderSliderContainer(SliderContainerElement& element, std::unique_ptr<RenderStyle> style)
+ RenderSliderContainer(SliderContainerElement& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
{
}
@@ -219,7 +219,7 @@
renderer()->setNeedsLayout();
}
-RenderPtr<RenderElement> SliderThumbElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SliderThumbElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSliderThumb>(*this, WTFMove(style));
}
@@ -623,7 +623,7 @@
return adoptRef(*new SliderContainerElement(document));
}
-RenderPtr<RenderElement> SliderContainerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SliderContainerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSliderContainer>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.h b/Source/WebCore/html/shadow/SliderThumbElement.h
index 943587d..58930fd 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.h
+++ b/Source/WebCore/html/shadow/SliderThumbElement.h
@@ -61,7 +61,7 @@
private:
SliderThumbElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
bool isDisabledFormControl() const override;
@@ -119,7 +119,7 @@
class RenderSliderThumb final : public RenderBlockFlow {
public:
- RenderSliderThumb(SliderThumbElement&, std::unique_ptr<RenderStyle>);
+ RenderSliderThumb(SliderThumbElement&, RenderStyle&&);
void updateAppearance(RenderStyle* parentStyle);
private:
@@ -134,7 +134,7 @@
private:
SliderContainerElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
Optional<ElementStyle> resolveCustomStyle(RenderStyle&, RenderStyle*) override;
const AtomicString& shadowPseudoId() const override;
diff --git a/Source/WebCore/html/shadow/TextControlInnerElements.cpp b/Source/WebCore/html/shadow/TextControlInnerElements.cpp
index 61cebbc..dd8bd36 100644
--- a/Source/WebCore/html/shadow/TextControlInnerElements.cpp
+++ b/Source/WebCore/html/shadow/TextControlInnerElements.cpp
@@ -59,7 +59,7 @@
return adoptRef(*new TextControlInnerContainer(document));
}
-RenderPtr<RenderElement> TextControlInnerContainer::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> TextControlInnerContainer::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderTextControlInnerContainer>(*this, WTFMove(style));
}
@@ -77,7 +77,7 @@
Optional<ElementStyle> TextControlInnerElement::resolveCustomStyle(RenderStyle&, RenderStyle* shadowHostStyle)
{
- auto innerContainerStyle = RenderStyle::create();
+ auto innerContainerStyle = RenderStyle::createPtr();
innerContainerStyle->inheritFrom(shadowHostStyle);
innerContainerStyle->setFlexGrow(1);
@@ -124,7 +124,7 @@
HTMLDivElement::defaultEventHandler(event);
}
-RenderPtr<RenderElement> TextControlInnerTextElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> TextControlInnerTextElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderTextControlInnerBlock>(*this, WTFMove(style));
}
@@ -136,7 +136,8 @@
Optional<ElementStyle> TextControlInnerTextElement::resolveCustomStyle(RenderStyle&, RenderStyle* shadowHostStyle)
{
- return ElementStyle(downcast<HTMLTextFormControlElement>(*shadowHost()).createInnerTextStyle(*shadowHostStyle));
+ auto style = downcast<HTMLTextFormControlElement>(*shadowHost()).createInnerTextStyle(*shadowHostStyle);
+ return ElementStyle(std::make_unique<RenderStyle>(WTFMove(style)));
}
// ----------------------------
diff --git a/Source/WebCore/html/shadow/TextControlInnerElements.h b/Source/WebCore/html/shadow/TextControlInnerElements.h
index 2a52392..9c5d464 100644
--- a/Source/WebCore/html/shadow/TextControlInnerElements.h
+++ b/Source/WebCore/html/shadow/TextControlInnerElements.h
@@ -39,7 +39,7 @@
static Ref<TextControlInnerContainer> create(Document&);
protected:
TextControlInnerContainer(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
class TextControlInnerElement final : public HTMLDivElement {
@@ -64,7 +64,7 @@
private:
TextControlInnerTextElement(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
Optional<ElementStyle> resolveCustomStyle(RenderStyle& parentStyle, RenderStyle* shadowHostStyle) override;
bool isMouseFocusable() const override { return false; }
bool isTextControlInnerTextElement() const override { return true; }
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
index 4b7dc69..234c40c 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
+++ b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.cpp
@@ -44,7 +44,7 @@
class RenderImageControlsButton final : public RenderBlockFlow {
public:
- RenderImageControlsButton(HTMLElement&, std::unique_ptr<RenderStyle>);
+ RenderImageControlsButton(HTMLElement&, RenderStyle&&);
virtual ~RenderImageControlsButton();
private:
@@ -55,7 +55,7 @@
bool requiresForcedStyleRecalcPropagation() const override { return true; }
};
-RenderImageControlsButton::RenderImageControlsButton(HTMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderImageControlsButton::RenderImageControlsButton(HTMLElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
@@ -125,7 +125,7 @@
HTMLDivElement::defaultEventHandler(event);
}
-RenderPtr<RenderElement> ImageControlsButtonElementMac::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> ImageControlsButtonElementMac::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderImageControlsButton>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
index 6fe8061..ee59379 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
+++ b/Source/WebCore/html/shadow/mac/ImageControlsButtonElementMac.h
@@ -42,7 +42,7 @@
ImageControlsButtonElementMac(Document&);
void defaultEventHandler(Event*) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool isImageControlsButtonElement() const override { return true; }
};
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
index 998d56a..9c9d6e6 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
+++ b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.cpp
@@ -38,7 +38,7 @@
class RenderImageControls final : public RenderBlockFlow {
public:
- RenderImageControls(HTMLElement&, std::unique_ptr<RenderStyle>);
+ RenderImageControls(HTMLElement&, RenderStyle&&);
virtual ~RenderImageControls();
private:
@@ -49,7 +49,7 @@
bool requiresForcedStyleRecalcPropagation() const override { return true; }
};
-RenderImageControls::RenderImageControls(HTMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderImageControls::RenderImageControls(HTMLElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
@@ -103,7 +103,7 @@
{
}
-RenderPtr<RenderElement> ImageControlsRootElementMac::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> ImageControlsRootElementMac::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderImageControls>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
index 0d2b12e..92da75d 100644
--- a/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
+++ b/Source/WebCore/html/shadow/mac/ImageControlsRootElementMac.h
@@ -40,7 +40,7 @@
private:
ImageControlsRootElementMac(Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
} // namespace WebCore
diff --git a/Source/WebCore/html/track/VTTCue.cpp b/Source/WebCore/html/track/VTTCue.cpp
index 6ae7a12..055f2c5 100644
--- a/Source/WebCore/html/track/VTTCue.cpp
+++ b/Source/WebCore/html/track/VTTCue.cpp
@@ -229,7 +229,7 @@
return trackDisplayBoxShadowPseudoId;
}
-RenderPtr<RenderElement> VTTCueBox::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> VTTCueBox::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderVTTCue>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/html/track/VTTCue.h b/Source/WebCore/html/track/VTTCue.h
index 3e7d8c1..92552ad 100644
--- a/Source/WebCore/html/track/VTTCue.h
+++ b/Source/WebCore/html/track/VTTCue.h
@@ -64,7 +64,7 @@
protected:
VTTCueBox(Document&, VTTCue&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
VTTCue& m_cue;
int m_fontSizeFromCaptionUserPrefs;
diff --git a/Source/WebCore/mathml/MathMLInlineContainerElement.cpp b/Source/WebCore/mathml/MathMLInlineContainerElement.cpp
index 47c3f80..1d3e3e9 100644
--- a/Source/WebCore/mathml/MathMLInlineContainerElement.cpp
+++ b/Source/WebCore/mathml/MathMLInlineContainerElement.cpp
@@ -74,7 +74,7 @@
MathMLElement::childrenChanged(change);
}
-RenderPtr<RenderElement> MathMLInlineContainerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MathMLInlineContainerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
if (hasTagName(annotation_xmlTag))
return createRenderer<RenderMathMLRow>(*this, WTFMove(style));
diff --git a/Source/WebCore/mathml/MathMLInlineContainerElement.h b/Source/WebCore/mathml/MathMLInlineContainerElement.h
index 327fad9..55053f9 100644
--- a/Source/WebCore/mathml/MathMLInlineContainerElement.h
+++ b/Source/WebCore/mathml/MathMLInlineContainerElement.h
@@ -43,7 +43,7 @@
void childrenChanged(const ChildChange&) override;
private:
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
}
diff --git a/Source/WebCore/mathml/MathMLMathElement.cpp b/Source/WebCore/mathml/MathMLMathElement.cpp
index dd9f4ef..63652d39 100644
--- a/Source/WebCore/mathml/MathMLMathElement.cpp
+++ b/Source/WebCore/mathml/MathMLMathElement.cpp
@@ -43,7 +43,7 @@
return adoptRef(*new MathMLMathElement(tagName, document));
}
-RenderPtr<RenderElement> MathMLMathElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MathMLMathElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMathMLMath>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/mathml/MathMLMathElement.h b/Source/WebCore/mathml/MathMLMathElement.h
index a2ce8be..eff88a4 100644
--- a/Source/WebCore/mathml/MathMLMathElement.h
+++ b/Source/WebCore/mathml/MathMLMathElement.h
@@ -39,7 +39,7 @@
private:
MathMLMathElement(const QualifiedName& tagName, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
};
}
diff --git a/Source/WebCore/mathml/MathMLMencloseElement.cpp b/Source/WebCore/mathml/MathMLMencloseElement.cpp
index 0fb8e4c..2ea08eb 100644
--- a/Source/WebCore/mathml/MathMLMencloseElement.cpp
+++ b/Source/WebCore/mathml/MathMLMencloseElement.cpp
@@ -47,7 +47,7 @@
return adoptRef(*new MathMLMencloseElement(tagName, document));
}
-RenderPtr<RenderElement> MathMLMencloseElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MathMLMencloseElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMathMLMenclose>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/mathml/MathMLMencloseElement.h b/Source/WebCore/mathml/MathMLMencloseElement.h
index 321e0cf..c4fcf33 100644
--- a/Source/WebCore/mathml/MathMLMencloseElement.h
+++ b/Source/WebCore/mathml/MathMLMencloseElement.h
@@ -58,7 +58,7 @@
private:
MathMLMencloseElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) final;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
void clearNotations() { m_notationFlags = 0; }
void addNotation(MencloseNotationFlag notationFlag) { m_notationFlags |= notationFlag; }
unsigned short m_notationFlags;
diff --git a/Source/WebCore/mathml/MathMLSelectElement.cpp b/Source/WebCore/mathml/MathMLSelectElement.cpp
index a6f158b..e671a7f 100644
--- a/Source/WebCore/mathml/MathMLSelectElement.cpp
+++ b/Source/WebCore/mathml/MathMLSelectElement.cpp
@@ -52,7 +52,7 @@
return adoptRef(*new MathMLSelectElement(tagName, document));
}
-RenderPtr<RenderElement> MathMLSelectElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> MathMLSelectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderMathMLRow>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/mathml/MathMLSelectElement.h b/Source/WebCore/mathml/MathMLSelectElement.h
index cd9ce2c..f1a44ed 100644
--- a/Source/WebCore/mathml/MathMLSelectElement.h
+++ b/Source/WebCore/mathml/MathMLSelectElement.h
@@ -40,7 +40,7 @@
private:
MathMLSelectElement(const QualifiedName& tagName, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
diff --git a/Source/WebCore/mathml/MathMLTextElement.cpp b/Source/WebCore/mathml/MathMLTextElement.cpp
index 0916c70..cafaceb 100644
--- a/Source/WebCore/mathml/MathMLTextElement.cpp
+++ b/Source/WebCore/mathml/MathMLTextElement.cpp
@@ -75,7 +75,7 @@
MathMLElement::parseAttribute(name, value);
}
-RenderPtr<RenderElement> MathMLTextElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition& insertionPosition)
+RenderPtr<RenderElement> MathMLTextElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition& insertionPosition)
{
if (hasTagName(MathMLNames::moTag))
return createRenderer<RenderMathMLOperator>(*this, WTFMove(style));
@@ -88,7 +88,7 @@
// FIXME: why do we have to set the alignment here ? It seems needed to make the
// style-changed.htmt test to pass, since mathml renders expect Stretch as default.
- style->setAlignItemsPosition(ItemPositionStretch);
+ style.setAlignItemsPosition(ItemPositionStretch);
return createRenderer<RenderMathMLToken>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/mathml/MathMLTextElement.h b/Source/WebCore/mathml/MathMLTextElement.h
index 921639f..2550e65 100644
--- a/Source/WebCore/mathml/MathMLTextElement.h
+++ b/Source/WebCore/mathml/MathMLTextElement.h
@@ -42,7 +42,7 @@
private:
MathMLTextElement(const QualifiedName& tagName, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
void childrenChanged(const ChildChange&) override;
diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index 69fc39e..7a9c3ca 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -3799,10 +3799,10 @@
m_scrollCorner = nullptr;
else {
if (!m_scrollCorner) {
- m_scrollCorner = createRenderer<RenderScrollbarPart>(renderer->document(), WTFMove(cornerStyle));
+ m_scrollCorner = createRenderer<RenderScrollbarPart>(renderer->document(), WTFMove(*cornerStyle));
m_scrollCorner->initializeStyle();
} else
- m_scrollCorner->setStyle(WTFMove(cornerStyle));
+ m_scrollCorner->setStyle(WTFMove(*cornerStyle));
invalidateScrollCorner(cornerRect);
}
diff --git a/Source/WebCore/page/animation/AnimationController.cpp b/Source/WebCore/page/animation/AnimationController.cpp
index 6bf74566..34410a3 100644
--- a/Source/WebCore/page/animation/AnimationController.cpp
+++ b/Source/WebCore/page/animation/AnimationController.cpp
@@ -425,7 +425,7 @@
const CompositeAnimation& rendererAnimations = *m_compositeAnimations.get(&renderer);
std::unique_ptr<RenderStyle> animatingStyle = rendererAnimations.getAnimatedStyle();
if (!animatingStyle)
- animatingStyle = RenderStyle::clone(&renderer.style());
+ animatingStyle = RenderStyle::clonePtr(renderer.style());
return animatingStyle;
}
@@ -637,7 +637,7 @@
std::unique_ptr<RenderStyle> AnimationController::getAnimatedStyleForRenderer(RenderElement& renderer)
{
if (!renderer.isCSSAnimating())
- return RenderStyle::clone(&renderer.style());
+ return RenderStyle::clonePtr(renderer.style());
return m_data->getAnimatedStyleForRenderer(renderer);
}
diff --git a/Source/WebCore/page/animation/CompositeAnimation.cpp b/Source/WebCore/page/animation/CompositeAnimation.cpp
index 9f4b2f6..538e54f 100644
--- a/Source/WebCore/page/animation/CompositeAnimation.cpp
+++ b/Source/WebCore/page/animation/CompositeAnimation.cpp
@@ -148,7 +148,7 @@
// of the property, so that restarted transitions use the correct starting point.
if (CSSPropertyAnimation::animationOfPropertyIsAccelerated(prop) && implAnim->isAccelerated()) {
if (!modifiedCurrentStyle)
- modifiedCurrentStyle = RenderStyle::clone(currentStyle);
+ modifiedCurrentStyle = RenderStyle::clonePtr(*currentStyle);
implAnim->blendPropertyValueInStyle(prop, modifiedCurrentStyle.get());
}
diff --git a/Source/WebCore/page/animation/ImplicitAnimation.cpp b/Source/WebCore/page/animation/ImplicitAnimation.cpp
index 2da45f7..90213d5 100644
--- a/Source/WebCore/page/animation/ImplicitAnimation.cpp
+++ b/Source/WebCore/page/animation/ImplicitAnimation.cpp
@@ -41,7 +41,7 @@
ImplicitAnimation::ImplicitAnimation(Animation& transition, CSSPropertyID animatingProperty, RenderElement* renderer, CompositeAnimation* compAnim, RenderStyle* fromStyle)
: AnimationBase(transition, renderer, compAnim)
- , m_fromStyle(RenderStyle::clone(fromStyle))
+ , m_fromStyle(RenderStyle::clonePtr(*fromStyle))
, m_transitionProperty(transition.property())
, m_animatingProperty(animatingProperty)
{
@@ -76,7 +76,7 @@
// Run a cycle of animation.
// We know we will need a new render style, so make one if needed
if (!animatedStyle)
- animatedStyle = RenderStyle::clone(targetStyle);
+ animatedStyle = RenderStyle::clonePtr(*targetStyle);
bool needsAnim = CSSPropertyAnimation::blendProperties(this, m_animatingProperty, animatedStyle.get(), m_fromStyle.get(), m_toStyle.get(), progress());
// FIXME: we also need to detect cases where we have to software animate for other reasons,
@@ -98,7 +98,7 @@
void ImplicitAnimation::getAnimatedStyle(std::unique_ptr<RenderStyle>& animatedStyle)
{
if (!animatedStyle)
- animatedStyle = RenderStyle::clone(m_toStyle.get());
+ animatedStyle = RenderStyle::clonePtr(*m_toStyle);
CSSPropertyAnimation::blendProperties(this, m_animatingProperty, animatedStyle.get(), m_fromStyle.get(), m_toStyle.get(), progress());
}
@@ -170,7 +170,7 @@
// (comparing the old unanimated style with the new final style of the transition).
RefPtr<KeyframeAnimation> keyframeAnim = m_compositeAnimation->getAnimationForProperty(m_animatingProperty);
if (keyframeAnim)
- keyframeAnim->setUnanimatedStyle(RenderStyle::clone(m_toStyle.get()));
+ keyframeAnim->setUnanimatedStyle(RenderStyle::clonePtr(*m_toStyle));
sendTransitionEvent(eventNames().transitionendEvent, elapsedTime);
endAnimation();
@@ -210,7 +210,7 @@
ASSERT(to);
ASSERT(m_fromStyle);
- m_toStyle = RenderStyle::clone(to);
+ m_toStyle = RenderStyle::clonePtr(*to);
// Restart the transition
if (m_fromStyle && m_toStyle)
diff --git a/Source/WebCore/page/animation/KeyframeAnimation.cpp b/Source/WebCore/page/animation/KeyframeAnimation.cpp
index fd4dd8c..5333221 100644
--- a/Source/WebCore/page/animation/KeyframeAnimation.cpp
+++ b/Source/WebCore/page/animation/KeyframeAnimation.cpp
@@ -44,7 +44,7 @@
KeyframeAnimation::KeyframeAnimation(Animation& animation, RenderElement* renderer, int index, CompositeAnimation* compositeAnimation, RenderStyle* unanimatedStyle)
: AnimationBase(animation, renderer, compositeAnimation)
, m_keyframes(animation.name())
- , m_unanimatedStyle(RenderStyle::clone(unanimatedStyle))
+ , m_unanimatedStyle(RenderStyle::clonePtr(*unanimatedStyle))
, m_index(index)
{
// Get the keyframe RenderStyles
@@ -138,7 +138,7 @@
// If so, we need to send back the targetStyle.
if (postActive()) {
if (!animatedStyle)
- animatedStyle = RenderStyle::clone(targetStyle);
+ animatedStyle = RenderStyle::clonePtr(*targetStyle);
return false;
}
@@ -161,7 +161,7 @@
// Run a cycle of animation.
// We know we will need a new render style, so make one if needed.
if (!animatedStyle)
- animatedStyle = RenderStyle::clone(targetStyle);
+ animatedStyle = RenderStyle::clonePtr(*targetStyle);
// FIXME: we need to be more efficient about determining which keyframes we are animating between.
// We should cache the last pair or something.
@@ -195,7 +195,7 @@
return;
if (!animatedStyle)
- animatedStyle = RenderStyle::clone(&m_object->style());
+ animatedStyle = RenderStyle::clonePtr(m_object->style());
for (auto propertyID : m_keyframes.properties()) {
// Get the from/to styles and progress between
diff --git a/Source/WebCore/rendering/RenderAttachment.cpp b/Source/WebCore/rendering/RenderAttachment.cpp
index f19d125..150c9fb 100644
--- a/Source/WebCore/rendering/RenderAttachment.cpp
+++ b/Source/WebCore/rendering/RenderAttachment.cpp
@@ -41,7 +41,7 @@
using namespace HTMLNames;
-RenderAttachment::RenderAttachment(HTMLAttachmentElement& element, std::unique_ptr<RenderStyle> style)
+RenderAttachment::RenderAttachment(HTMLAttachmentElement& element, RenderStyle&& style)
: RenderReplaced(element, WTFMove(style), LayoutSize())
{
}
diff --git a/Source/WebCore/rendering/RenderAttachment.h b/Source/WebCore/rendering/RenderAttachment.h
index 986c050..6afc62e 100644
--- a/Source/WebCore/rendering/RenderAttachment.h
+++ b/Source/WebCore/rendering/RenderAttachment.h
@@ -36,7 +36,7 @@
class RenderAttachment final : public RenderReplaced {
public:
- RenderAttachment(HTMLAttachmentElement&, std::unique_ptr<RenderStyle>);
+ RenderAttachment(HTMLAttachmentElement&, RenderStyle&&);
HTMLAttachmentElement& attachmentElement() const;
diff --git a/Source/WebCore/rendering/RenderBlock.cpp b/Source/WebCore/rendering/RenderBlock.cpp
index 6a5bf83..788b3f3 100644
--- a/Source/WebCore/rendering/RenderBlock.cpp
+++ b/Source/WebCore/rendering/RenderBlock.cpp
@@ -181,12 +181,12 @@
bool m_hadVerticalLayoutOverflow;
};
-RenderBlock::RenderBlock(Element& element, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBlock::RenderBlock(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderBox(element, WTFMove(style), baseTypeFlags | RenderBlockFlag)
{
}
-RenderBlock::RenderBlock(Document& document, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBlock::RenderBlock(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderBox(document, WTFMove(style), baseTypeFlags | RenderBlockFlag)
{
}
@@ -306,7 +306,7 @@
for (RenderBlock* currCont = blockElementContinuation(); currCont; currCont = currCont->blockElementContinuation()) {
RenderBoxModelObject* nextCont = currCont->continuation();
currCont->setContinuation(0);
- currCont->setStyle(RenderStyle::clone(&newStyle));
+ currCont->setStyle(RenderStyle::clone(newStyle));
currCont->setContinuation(nextCont);
}
}
@@ -391,7 +391,7 @@
cloneBlock->setChildrenInline(childrenInline());
} else {
RenderTreePosition insertionPosition(*parent());
- cloneBlock = static_pointer_cast<RenderBlock>(element()->createElementRenderer(RenderStyle::clone(&style()), insertionPosition));
+ cloneBlock = static_pointer_cast<RenderBlock>(element()->createElementRenderer(RenderStyle::clone(style()), insertionPosition));
cloneBlock->initializeStyle();
// This takes care of setting the right value of childrenInline in case
@@ -717,7 +717,7 @@
ASSERT(!inlineChildrenBlock.continuation());
// Cache this value as it might get changed in setStyle() call.
bool inlineChildrenBlockHasLayer = inlineChildrenBlock.hasLayer();
- inlineChildrenBlock.setStyle(RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK));
+ inlineChildrenBlock.setStyle(RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK));
removeChildInternal(inlineChildrenBlock, inlineChildrenBlockHasLayer ? NotifyChildren : DontNotifyChildren);
// Now just put the inlineChildrenBlock inside the blockChildrenBlock.
@@ -3068,9 +3068,9 @@
// The first-letter renderer needs to be replaced. Create a new renderer of the right type.
RenderBoxModelObject* newFirstLetter;
if (pseudoStyle.display() == INLINE)
- newFirstLetter = new RenderInline(document(), RenderStyle::clone(&pseudoStyle));
+ newFirstLetter = new RenderInline(document(), RenderStyle::clone(pseudoStyle));
else
- newFirstLetter = new RenderBlockFlow(document(), RenderStyle::clone(&pseudoStyle));
+ newFirstLetter = new RenderBlockFlow(document(), RenderStyle::clone(pseudoStyle));
newFirstLetter->initializeStyle();
// Move the first letter into the new renderer.
@@ -3096,7 +3096,7 @@
firstLetter = newFirstLetter;
firstLetterContainer->addChild(firstLetter, nextSibling);
} else
- firstLetter->setStyle(RenderStyle::clone(&pseudoStyle));
+ firstLetter->setStyle(RenderStyle::clone(pseudoStyle));
}
void RenderBlock::createFirstLetterRenderer(RenderElement* firstLetterBlock, RenderText* currentTextChild)
@@ -3105,9 +3105,9 @@
RenderStyle& pseudoStyle = styleForFirstLetter(firstLetterBlock, firstLetterContainer);
RenderBoxModelObject* firstLetter = nullptr;
if (pseudoStyle.display() == INLINE)
- firstLetter = new RenderInline(document(), RenderStyle::clone(&pseudoStyle));
+ firstLetter = new RenderInline(document(), RenderStyle::clone(pseudoStyle));
else
- firstLetter = new RenderBlockFlow(document(), RenderStyle::clone(&pseudoStyle));
+ firstLetter = new RenderBlockFlow(document(), RenderStyle::clone(pseudoStyle));
firstLetter->initializeStyle();
firstLetterContainer->addChild(firstLetter, currentTextChild);
@@ -3743,9 +3743,9 @@
// FIXME: Do we need to convert all our inline displays to block-type in the anonymous logic ?
RenderBlock* newBox;
if (display == FLEX || display == INLINE_FLEX)
- newBox = new RenderFlexibleBox(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), FLEX));
+ newBox = new RenderFlexibleBox(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), FLEX));
else
- newBox = new RenderBlockFlow(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), BLOCK));
+ newBox = new RenderBlockFlow(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), BLOCK));
newBox->initializeStyle();
return newBox;
diff --git a/Source/WebCore/rendering/RenderBlock.h b/Source/WebCore/rendering/RenderBlock.h
index 1265721..e3a49d1 100644
--- a/Source/WebCore/rendering/RenderBlock.h
+++ b/Source/WebCore/rendering/RenderBlock.h
@@ -61,8 +61,8 @@
friend class LineLayoutState;
protected:
- RenderBlock(Element&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
- RenderBlock(Document&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderBlock(Element&, RenderStyle&&, BaseTypeFlags);
+ RenderBlock(Document&, RenderStyle&&, BaseTypeFlags);
virtual ~RenderBlock();
public:
diff --git a/Source/WebCore/rendering/RenderBlockFlow.cpp b/Source/WebCore/rendering/RenderBlockFlow.cpp
index 7e7c229..4444508 100644
--- a/Source/WebCore/rendering/RenderBlockFlow.cpp
+++ b/Source/WebCore/rendering/RenderBlockFlow.cpp
@@ -94,7 +94,7 @@
m_negativeMargin = (m_canCollapseMarginBeforeWithChildren && !block.mustDiscardMarginBefore()) ? block.maxNegativeMarginBefore() : LayoutUnit();
}
-RenderBlockFlow::RenderBlockFlow(Element& element, std::unique_ptr<RenderStyle> style)
+RenderBlockFlow::RenderBlockFlow(Element& element, RenderStyle&& style)
: RenderBlock(element, WTFMove(style), RenderBlockFlowFlag)
#if ENABLE(IOS_TEXT_AUTOSIZING)
, m_widthForTextAutosizing(-1)
@@ -104,7 +104,7 @@
setChildrenInline(true);
}
-RenderBlockFlow::RenderBlockFlow(Document& document, std::unique_ptr<RenderStyle> style)
+RenderBlockFlow::RenderBlockFlow(Document& document, RenderStyle&& style)
: RenderBlock(document, WTFMove(style), RenderBlockFlowFlag)
#if ENABLE(IOS_TEXT_AUTOSIZING)
, m_widthForTextAutosizing(-1)
@@ -120,7 +120,7 @@
void RenderBlockFlow::createMultiColumnFlowThread()
{
- RenderMultiColumnFlowThread* flowThread = new RenderMultiColumnFlowThread(document(), RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK));
+ RenderMultiColumnFlowThread* flowThread = new RenderMultiColumnFlowThread(document(), RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK));
flowThread->initializeStyle();
setChildrenInline(false); // Do this to avoid wrapping inline children that are just going to move into the flow thread.
deleteLines();
@@ -2037,7 +2037,7 @@
void RenderBlockFlow::updateStylesForColumnChildren()
{
for (auto* child = firstChildBox(); child && (child->isInFlowRenderFlowThread() || child->isRenderMultiColumnSet()); child = child->nextSiblingBox())
- child->setStyle(RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK));
+ child->setStyle(RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK));
}
void RenderBlockFlow::styleWillChange(StyleDifference diff, const RenderStyle& newStyle)
diff --git a/Source/WebCore/rendering/RenderBlockFlow.h b/Source/WebCore/rendering/RenderBlockFlow.h
index bc89fb3..0fea305 100644
--- a/Source/WebCore/rendering/RenderBlockFlow.h
+++ b/Source/WebCore/rendering/RenderBlockFlow.h
@@ -55,8 +55,8 @@
class RenderBlockFlow : public RenderBlock {
public:
- RenderBlockFlow(Element&, std::unique_ptr<RenderStyle>);
- RenderBlockFlow(Document&, std::unique_ptr<RenderStyle>);
+ RenderBlockFlow(Element&, RenderStyle&&);
+ RenderBlockFlow(Document&, RenderStyle&&);
virtual ~RenderBlockFlow();
void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) override;
diff --git a/Source/WebCore/rendering/RenderBox.cpp b/Source/WebCore/rendering/RenderBox.cpp
index 9806f45..23d14d7 100644
--- a/Source/WebCore/rendering/RenderBox.cpp
+++ b/Source/WebCore/rendering/RenderBox.cpp
@@ -118,7 +118,7 @@
&& (documentElementRenderer == bodyElementRenderer->parent());
}
-RenderBox::RenderBox(Element& element, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBox::RenderBox(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderBoxModelObject(element, WTFMove(style), baseTypeFlags)
, m_minPreferredLogicalWidth(-1)
, m_maxPreferredLogicalWidth(-1)
@@ -127,7 +127,7 @@
setIsBox();
}
-RenderBox::RenderBox(Document& document, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBox::RenderBox(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderBoxModelObject(document, WTFMove(style), baseTypeFlags)
, m_minPreferredLogicalWidth(-1)
, m_maxPreferredLogicalWidth(-1)
diff --git a/Source/WebCore/rendering/RenderBox.h b/Source/WebCore/rendering/RenderBox.h
index a40a74d..016315a 100644
--- a/Source/WebCore/rendering/RenderBox.h
+++ b/Source/WebCore/rendering/RenderBox.h
@@ -630,8 +630,8 @@
const RenderBox* findEnclosingScrollableContainer() const;
protected:
- RenderBox(Element&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
- RenderBox(Document&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderBox(Element&, RenderStyle&&, BaseTypeFlags);
+ RenderBox(Document&, RenderStyle&&, BaseTypeFlags);
void styleWillChange(StyleDifference, const RenderStyle& newStyle) override;
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.cpp b/Source/WebCore/rendering/RenderBoxModelObject.cpp
index bd453e7..a35af57 100644
--- a/Source/WebCore/rendering/RenderBoxModelObject.cpp
+++ b/Source/WebCore/rendering/RenderBoxModelObject.cpp
@@ -161,12 +161,12 @@
layer()->backing()->suspendAnimations(time);
}
-RenderBoxModelObject::RenderBoxModelObject(Element& element, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBoxModelObject::RenderBoxModelObject(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderLayerModelObject(element, WTFMove(style), baseTypeFlags | RenderBoxModelObjectFlag)
{
}
-RenderBoxModelObject::RenderBoxModelObject(Document& document, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderBoxModelObject::RenderBoxModelObject(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderLayerModelObject(document, WTFMove(style), baseTypeFlags | RenderBoxModelObjectFlag)
{
}
diff --git a/Source/WebCore/rendering/RenderBoxModelObject.h b/Source/WebCore/rendering/RenderBoxModelObject.h
index 2cb51ff..1383960 100644
--- a/Source/WebCore/rendering/RenderBoxModelObject.h
+++ b/Source/WebCore/rendering/RenderBoxModelObject.h
@@ -238,8 +238,8 @@
RenderBoxModelObject* continuation() const;
protected:
- RenderBoxModelObject(Element&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
- RenderBoxModelObject(Document&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderBoxModelObject(Element&, RenderStyle&&, BaseTypeFlags);
+ RenderBoxModelObject(Document&, RenderStyle&&, BaseTypeFlags);
void willBeDestroyed() override;
diff --git a/Source/WebCore/rendering/RenderButton.cpp b/Source/WebCore/rendering/RenderButton.cpp
index 9a21c05..fadf3bb 100644
--- a/Source/WebCore/rendering/RenderButton.cpp
+++ b/Source/WebCore/rendering/RenderButton.cpp
@@ -37,7 +37,7 @@
using namespace HTMLNames;
-RenderButton::RenderButton(HTMLFormControlElement& element, std::unique_ptr<RenderStyle> style)
+RenderButton::RenderButton(HTMLFormControlElement& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
, m_buttonText(0)
, m_inner(0)
diff --git a/Source/WebCore/rendering/RenderButton.h b/Source/WebCore/rendering/RenderButton.h
index 6b62a6b..190e29c 100644
--- a/Source/WebCore/rendering/RenderButton.h
+++ b/Source/WebCore/rendering/RenderButton.h
@@ -35,7 +35,7 @@
// to date as the button changes.
class RenderButton final : public RenderFlexibleBox {
public:
- RenderButton(HTMLFormControlElement&, std::unique_ptr<RenderStyle>);
+ RenderButton(HTMLFormControlElement&, RenderStyle&&);
virtual ~RenderButton();
HTMLFormControlElement& formControlElement() const;
diff --git a/Source/WebCore/rendering/RenderCombineText.cpp b/Source/WebCore/rendering/RenderCombineText.cpp
index 182d9b3..d74a620 100644
--- a/Source/WebCore/rendering/RenderCombineText.cpp
+++ b/Source/WebCore/rendering/RenderCombineText.cpp
@@ -43,7 +43,7 @@
// clobbering width variants and shrink-to-fit changes, since we won't recombine when
// the font doesn't change.
if (!oldStyle || oldStyle->fontCascade() != style().fontCascade())
- m_combineFontStyle = RenderStyle::clone(&style());
+ m_combineFontStyle = RenderStyle::clonePtr(style());
RenderText::styleDidChange(diff, oldStyle);
diff --git a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp b/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
index 1c708a1..dd143e1 100644
--- a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
+++ b/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
@@ -117,7 +117,7 @@
unsigned m_ordinalIteration;
};
-RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox(Element& element, std::unique_ptr<RenderStyle> style)
+RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox(Element& element, RenderStyle&& style)
: RenderBlock(element, WTFMove(style), 0)
{
setChildrenInline(false); // All of our children must be block-level
diff --git a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h b/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h
index bb3f9df..0c3a281 100644
--- a/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h
+++ b/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.h
@@ -31,7 +31,7 @@
class RenderDeprecatedFlexibleBox final : public RenderBlock {
public:
- RenderDeprecatedFlexibleBox(Element&, std::unique_ptr<RenderStyle>);
+ RenderDeprecatedFlexibleBox(Element&, RenderStyle&&);
virtual ~RenderDeprecatedFlexibleBox();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderDetailsMarker.cpp b/Source/WebCore/rendering/RenderDetailsMarker.cpp
index 7ad0ace..6955d34 100644
--- a/Source/WebCore/rendering/RenderDetailsMarker.cpp
+++ b/Source/WebCore/rendering/RenderDetailsMarker.cpp
@@ -33,7 +33,7 @@
using namespace HTMLNames;
-RenderDetailsMarker::RenderDetailsMarker(DetailsMarkerControl& element, std::unique_ptr<RenderStyle> style)
+RenderDetailsMarker::RenderDetailsMarker(DetailsMarkerControl& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderDetailsMarker.h b/Source/WebCore/rendering/RenderDetailsMarker.h
index 3f58864..2fa961d 100644
--- a/Source/WebCore/rendering/RenderDetailsMarker.h
+++ b/Source/WebCore/rendering/RenderDetailsMarker.h
@@ -29,7 +29,7 @@
class RenderDetailsMarker final : public RenderBlockFlow {
public:
- RenderDetailsMarker(DetailsMarkerControl&, std::unique_ptr<RenderStyle>);
+ RenderDetailsMarker(DetailsMarkerControl&, RenderStyle&&);
DetailsMarkerControl& element() const { return static_cast<DetailsMarkerControl&>(nodeForNonAnonymous()); }
enum Orientation { Up, Down, Left, Right };
diff --git a/Source/WebCore/rendering/RenderElement.cpp b/Source/WebCore/rendering/RenderElement.cpp
index e7d6926..f8a18f0 100644
--- a/Source/WebCore/rendering/RenderElement.cpp
+++ b/Source/WebCore/rendering/RenderElement.cpp
@@ -82,7 +82,7 @@
return map;
}
-inline RenderElement::RenderElement(ContainerNode& elementOrDocument, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+inline RenderElement::RenderElement(ContainerNode& elementOrDocument, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderObject(elementOrDocument)
, m_baseTypeFlags(baseTypeFlags)
, m_ancestorLineBoxDirty(false)
@@ -104,12 +104,12 @@
{
}
-RenderElement::RenderElement(Element& element, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderElement::RenderElement(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderElement(static_cast<ContainerNode&>(element), WTFMove(style), baseTypeFlags)
{
}
-RenderElement::RenderElement(Document& document, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderElement::RenderElement(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderElement(static_cast<ContainerNode&>(document), WTFMove(style), baseTypeFlags)
{
}
@@ -117,24 +117,24 @@
RenderElement::~RenderElement()
{
if (hasInitializedStyle()) {
- for (const FillLayer* bgLayer = m_style->backgroundLayers(); bgLayer; bgLayer = bgLayer->next()) {
+ for (const FillLayer* bgLayer = m_style.backgroundLayers(); bgLayer; bgLayer = bgLayer->next()) {
if (StyleImage* backgroundImage = bgLayer->image())
backgroundImage->removeClient(this);
}
- for (const FillLayer* maskLayer = m_style->maskLayers(); maskLayer; maskLayer = maskLayer->next()) {
+ for (const FillLayer* maskLayer = m_style.maskLayers(); maskLayer; maskLayer = maskLayer->next()) {
if (StyleImage* maskImage = maskLayer->image())
maskImage->removeClient(this);
}
- if (StyleImage* borderImage = m_style->borderImage().image())
+ if (StyleImage* borderImage = m_style.borderImage().image())
borderImage->removeClient(this);
- if (StyleImage* maskBoxImage = m_style->maskBoxImage().image())
+ if (StyleImage* maskBoxImage = m_style.maskBoxImage().image())
maskBoxImage->removeClient(this);
#if ENABLE(CSS_SHAPES)
- if (auto shapeValue = m_style->shapeOutside()) {
+ if (auto shapeValue = m_style.shapeOutside()) {
if (auto shapeImage = shapeValue->image())
shapeImage->removeClient(this);
}
@@ -146,12 +146,12 @@
view().unregisterForVisibleInViewportCallback(*this);
}
-RenderPtr<RenderElement> RenderElement::createFor(Element& element, std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderElement> RenderElement::createFor(Element& element, RenderStyle&& style)
{
// Minimal support for content properties replacing an entire element.
// Works only if we have exactly one piece of content and it's a URL.
// Otherwise acts as if we didn't support this feature.
- const ContentData* contentData = style->contentData();
+ const ContentData* contentData = style.contentData();
if (contentData && !contentData->next() && is<ImageContentData>(*contentData) && !element.isPseudoElement()) {
auto& styleImage = downcast<ImageContentData>(*contentData).image();
auto image = createRenderer<RenderImage>(element, WTFMove(style), const_cast<StyleImage*>(&styleImage));
@@ -159,7 +159,7 @@
return WTFMove(image);
}
- switch (style->display()) {
+ switch (style.display()) {
case NONE:
case CONTENTS:
return nullptr;
@@ -375,14 +375,14 @@
m_hasInitializedStyle = true;
- updateFillImages(nullptr, m_style->backgroundLayers());
- updateFillImages(nullptr, m_style->maskLayers());
+ updateFillImages(nullptr, m_style.backgroundLayers());
+ updateFillImages(nullptr, m_style.maskLayers());
- updateImage(nullptr, m_style->borderImage().image());
- updateImage(nullptr, m_style->maskBoxImage().image());
+ updateImage(nullptr, m_style.borderImage().image());
+ updateImage(nullptr, m_style.maskBoxImage().image());
#if ENABLE(CSS_SHAPES)
- updateShapeImage(nullptr, m_style->shapeOutside());
+ updateShapeImage(nullptr, m_style.shapeOutside());
#endif
styleDidChange(StyleDifferenceNewStyle, nullptr);
@@ -394,7 +394,7 @@
// have their parent set before getting a call to initializeStyle() :|
}
-void RenderElement::setStyle(std::unique_ptr<RenderStyle> style, StyleDifference minimalStyleDifference)
+void RenderElement::setStyle(RenderStyle&& style, StyleDifference minimalStyleDifference)
{
// FIXME: Should change RenderView so it can use initializeStyle too.
// If we do that, we can assert m_hasInitializedStyle unconditionally,
@@ -404,34 +404,34 @@
StyleDifference diff = StyleDifferenceEqual;
unsigned contextSensitiveProperties = ContextSensitivePropertyNone;
if (m_hasInitializedStyle)
- diff = m_style->diff(*style, contextSensitiveProperties);
+ diff = m_style.diff(style, contextSensitiveProperties);
diff = std::max(diff, minimalStyleDifference);
diff = adjustStyleDifference(diff, contextSensitiveProperties);
- styleWillChange(diff, *style);
+ styleWillChange(diff, style);
auto oldStyle = WTFMove(m_style);
m_style = WTFMove(style);
- updateFillImages(oldStyle->backgroundLayers(), m_style->backgroundLayers());
- updateFillImages(oldStyle->maskLayers(), m_style->maskLayers());
+ updateFillImages(oldStyle.backgroundLayers(), m_style.backgroundLayers());
+ updateFillImages(oldStyle.maskLayers(), m_style.maskLayers());
- updateImage(oldStyle->borderImage().image(), m_style->borderImage().image());
- updateImage(oldStyle->maskBoxImage().image(), m_style->maskBoxImage().image());
+ updateImage(oldStyle.borderImage().image(), m_style.borderImage().image());
+ updateImage(oldStyle.maskBoxImage().image(), m_style.maskBoxImage().image());
#if ENABLE(CSS_SHAPES)
- updateShapeImage(oldStyle->shapeOutside(), m_style->shapeOutside());
+ updateShapeImage(oldStyle.shapeOutside(), m_style.shapeOutside());
#endif
bool doesNotNeedLayout = !parent();
- styleDidChange(diff, oldStyle.get());
+ styleDidChange(diff, &oldStyle);
// Text renderers use their parent style. Notify them about the change.
for (auto& child : childrenOfType<RenderText>(*this))
- child.styleDidChange(diff, oldStyle.get());
+ child.styleDidChange(diff, &oldStyle);
// FIXME: |this| might be destroyed here. This can currently happen for a RenderTextFragment when
// its first-letter block gets an update in RenderTextFragment::styleDidChange. For RenderTextFragment(s),
@@ -448,9 +448,9 @@
if (updatedDiff == StyleDifferenceLayout)
setNeedsLayoutAndPrefWidthsRecalc();
else if (updatedDiff == StyleDifferenceLayoutPositionedMovementOnly)
- setNeedsPositionedMovementLayout(oldStyle.get());
+ setNeedsPositionedMovementLayout(&oldStyle);
else if (updatedDiff == StyleDifferenceSimplifiedLayoutAndPositionedMovement) {
- setNeedsPositionedMovementLayout(oldStyle.get());
+ setNeedsPositionedMovementLayout(&oldStyle);
setNeedsSimplifiedNormalFlowLayout();
} else if (updatedDiff == StyleDifferenceSimplifiedLayout)
setNeedsSimplifiedNormalFlowLayout();
@@ -782,18 +782,18 @@
if (is<RenderFlowThread>(elementChild))
continue;
- auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), elementChild.style().display());
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), elementChild.style().display());
if (style().specifiesColumns()) {
if (elementChild.style().specifiesColumns())
- newStyle->inheritColumnPropertiesFrom(&style());
+ newStyle.inheritColumnPropertiesFrom(&style());
if (elementChild.style().columnSpan())
- newStyle->setColumnSpan(ColumnSpanAll);
+ newStyle.setColumnSpan(ColumnSpanAll);
}
// Preserve the position style of anonymous block continuations as they can have relative or sticky position when
// they contain block descendants of relative or sticky positioned inlines.
if (elementChild.isInFlowPositioned() && downcast<RenderBlock>(elementChild).isAnonymousBlockContinuation())
- newStyle->setPosition(elementChild.style().position());
+ newStyle.setPosition(elementChild.style().position());
elementChild.setStyle(WTFMove(newStyle));
}
@@ -810,9 +810,9 @@
if (oldStyle) {
// If our z-index changes value or our visibility changes,
// we need to dirty our stacking context's z-order list.
- bool visibilityChanged = m_style->visibility() != newStyle.visibility()
- || m_style->zIndex() != newStyle.zIndex()
- || m_style->hasAutoZIndex() != newStyle.hasAutoZIndex();
+ bool visibilityChanged = m_style.visibility() != newStyle.visibility()
+ || m_style.zIndex() != newStyle.zIndex()
+ || m_style.hasAutoZIndex() != newStyle.hasAutoZIndex();
#if ENABLE(DASHBOARD_SUPPORT)
if (visibilityChanged)
document().setAnnotatedRegionsDirty(true);
@@ -827,7 +827,7 @@
}
// Keep layer hierarchy visibility bits up to date if visibility changes.
- if (m_style->visibility() != newStyle.visibility()) {
+ if (m_style.visibility() != newStyle.visibility()) {
if (RenderLayer* layer = enclosingLayer()) {
if (newStyle.visibility() == VISIBLE)
layer->setHasVisibleContent();
@@ -839,16 +839,17 @@
}
}
- if (m_parent && (newStyle.outlineSize() < m_style->outlineSize() || shouldRepaintForStyleDifference(diff)))
+ if (m_parent && (newStyle.outlineSize() < m_style.outlineSize() || shouldRepaintForStyleDifference(diff)))
repaint();
- if (isFloating() && (m_style->floating() != newStyle.floating()))
+ if (isFloating() && m_style.floating() != newStyle.floating()) {
// For changes in float styles, we need to conceivably remove ourselves
// from the floating objects list.
downcast<RenderBox>(*this).removeFloatingOrPositionedChildFromBlockLists();
- else if (isOutOfFlowPositioned() && (m_style->position() != newStyle.position()))
+ } else if (isOutOfFlowPositioned() && m_style.position() != newStyle.position()) {
// For changes in positioning styles, we need to conceivably remove ourselves
// from the positioned objects list.
downcast<RenderBox>(*this).removeFloatingOrPositionedChildFromBlockLists();
+ }
s_affectsParentBlock = isFloatingOrOutOfFlowPositioned()
&& (!newStyle.isFloating() && !newStyle.hasOutOfFlowPosition())
@@ -873,7 +874,7 @@
}
bool newStyleUsesFixedBackgrounds = newStyle.hasFixedBackgroundImage();
- bool oldStyleUsesFixedBackgrounds = m_style->hasFixedBackgroundImage();
+ bool oldStyleUsesFixedBackgrounds = m_style.hasFixedBackgroundImage();
if (newStyleUsesFixedBackgrounds || oldStyleUsesFixedBackgrounds) {
bool repaintFixedBackgroundsOnScroll = !frame().settings().fixedBackgroundsPaintRelativeToDocument();
@@ -885,7 +886,7 @@
if (newStyleSlowScroll && newStyle.hasEntirelyFixedBackground())
newStyleSlowScroll = false;
- if (oldStyleSlowScroll && m_style->hasEntirelyFixedBackground())
+ if (oldStyleSlowScroll && m_style.hasEntirelyFixedBackground())
oldStyleSlowScroll = false;
}
}
@@ -980,14 +981,14 @@
return;
if (diff == StyleDifferenceLayout || diff == StyleDifferenceSimplifiedLayout) {
- RenderCounter::rendererStyleChanged(*this, oldStyle, m_style.get());
+ RenderCounter::rendererStyleChanged(*this, oldStyle, &m_style);
// If the object already needs layout, then setNeedsLayout won't do
// any work. But if the containing block has changed, then we may need
// to mark the new containing blocks for layout. The change that can
// directly affect the containing block of this object is a change to
// the position style.
- if (needsLayout() && oldStyle->position() != m_style->position())
+ if (needsLayout() && oldStyle->position() != m_style.position())
markContainingBlocksForLayout();
if (diff == StyleDifferenceLayout)
@@ -1055,7 +1056,7 @@
removeLayers(layer);
}
- if (m_style->hasFixedBackgroundImage() && !frame().settings().fixedBackgroundsPaintRelativeToDocument())
+ if (m_style.hasFixedBackgroundImage() && !frame().settings().fixedBackgroundsPaintRelativeToDocument())
view().frameView().removeSlowRepaintObject(this);
if (isOutOfFlowPositioned() && parent()->childrenInline())
diff --git a/Source/WebCore/rendering/RenderElement.h b/Source/WebCore/rendering/RenderElement.h
index d0ccdcd..61effc7 100644
--- a/Source/WebCore/rendering/RenderElement.h
+++ b/Source/WebCore/rendering/RenderElement.h
@@ -36,11 +36,11 @@
public:
virtual ~RenderElement();
- static RenderPtr<RenderElement> createFor(Element&, std::unique_ptr<RenderStyle>);
+ static RenderPtr<RenderElement> createFor(Element&, RenderStyle&&);
bool hasInitializedStyle() const { return m_hasInitializedStyle; }
- RenderStyle& style() const { return const_cast<RenderStyle&>(*m_style); }
+ RenderStyle& style() const { return const_cast<RenderStyle&>(m_style); }
RenderStyle& firstLineStyle() const;
void initializeStyle();
@@ -48,7 +48,7 @@
// Calling with minimalStyleDifference > StyleDifferenceEqual indicates that
// out-of-band state (e.g. animations) requires that styleDidChange processing
// continue even if the style isn't different from the current style.
- void setStyle(std::unique_ptr<RenderStyle>, StyleDifference minimalStyleDifference = StyleDifferenceEqual);
+ void setStyle(RenderStyle&&, StyleDifference minimalStyleDifference = StyleDifferenceEqual);
// The pseudo element style can be cached or uncached. Use the cached method if the pseudo element doesn't respect
// any pseudo classes (and therefore has no concept of changing state).
@@ -136,7 +136,7 @@
// Updates only the local style ptr of the object. Does not update the state of the object,
// and so only should be called when the style is known not to have changed (or from setStyle).
- void setStyleInternal(std::unique_ptr<RenderStyle> style) { m_style = WTFMove(style); }
+ void setStyleInternal(RenderStyle&& style) { m_style = WTFMove(style); }
// Repaint only if our old bounds and new bounds are different. The caller may pass in newBounds and newOutlineBox if they are known.
bool repaintAfterLayoutIfNeeded(const RenderLayerModelObject* repaintContainer, const LayoutRect& oldBounds, const LayoutRect& oldOutlineBox, const LayoutRect* newBoundsPtr = nullptr, const LayoutRect* newOutlineBoxPtr = nullptr);
@@ -223,8 +223,8 @@
typedef unsigned BaseTypeFlags;
- RenderElement(Element&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
- RenderElement(Document&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderElement(Element&, RenderStyle&&, BaseTypeFlags);
+ RenderElement(Document&, RenderStyle&&, BaseTypeFlags);
bool layerCreationAllowedForSubtree() const;
@@ -272,7 +272,7 @@
void updateOutlineAutoAncestor(bool hasOutlineAuto) const;
private:
- RenderElement(ContainerNode&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderElement(ContainerNode&, RenderStyle&&, BaseTypeFlags);
void node() const = delete;
void nonPseudoNode() const = delete;
void generatingNode() const = delete;
@@ -332,7 +332,7 @@
RenderObject* m_firstChild;
RenderObject* m_lastChild;
- std::unique_ptr<RenderStyle> m_style;
+ RenderStyle m_style;
// FIXME: Get rid of this hack.
// Store state between styleWillChange and styleDidChange
diff --git a/Source/WebCore/rendering/RenderEmbeddedObject.cpp b/Source/WebCore/rendering/RenderEmbeddedObject.cpp
index 7aec489..9c5128a 100644
--- a/Source/WebCore/rendering/RenderEmbeddedObject.cpp
+++ b/Source/WebCore/rendering/RenderEmbeddedObject.cpp
@@ -96,7 +96,7 @@
return standard;
}
-RenderEmbeddedObject::RenderEmbeddedObject(HTMLFrameOwnerElement& element, std::unique_ptr<RenderStyle> style)
+RenderEmbeddedObject::RenderEmbeddedObject(HTMLFrameOwnerElement& element, RenderStyle&& style)
: RenderWidget(element, WTFMove(style))
, m_isPluginUnavailable(false)
, m_unavailablePluginIndicatorIsPressed(false)
@@ -111,7 +111,7 @@
view().frameView().removeEmbeddedObjectToUpdate(*this);
}
-RenderPtr<RenderEmbeddedObject> RenderEmbeddedObject::createForApplet(HTMLAppletElement& applet, std::unique_ptr<RenderStyle> style)
+RenderPtr<RenderEmbeddedObject> RenderEmbeddedObject::createForApplet(HTMLAppletElement& applet, RenderStyle&& style)
{
auto renderer = createRenderer<RenderEmbeddedObject>(applet, WTFMove(style));
renderer->setInline(true);
diff --git a/Source/WebCore/rendering/RenderEmbeddedObject.h b/Source/WebCore/rendering/RenderEmbeddedObject.h
index 6400348..6210cc9 100644
--- a/Source/WebCore/rendering/RenderEmbeddedObject.h
+++ b/Source/WebCore/rendering/RenderEmbeddedObject.h
@@ -35,10 +35,10 @@
// For example, <embed src="foo.html"> does not invoke a plug-in.
class RenderEmbeddedObject : public RenderWidget {
public:
- RenderEmbeddedObject(HTMLFrameOwnerElement&, std::unique_ptr<RenderStyle>);
+ RenderEmbeddedObject(HTMLFrameOwnerElement&, RenderStyle&&);
virtual ~RenderEmbeddedObject();
- static RenderPtr<RenderEmbeddedObject> createForApplet(HTMLAppletElement&, std::unique_ptr<RenderStyle>);
+ static RenderPtr<RenderEmbeddedObject> createForApplet(HTMLAppletElement&, RenderStyle&&);
enum PluginUnavailabilityReason {
PluginMissing,
diff --git a/Source/WebCore/rendering/RenderFieldset.cpp b/Source/WebCore/rendering/RenderFieldset.cpp
index bb3b1f5..787aba0 100644
--- a/Source/WebCore/rendering/RenderFieldset.cpp
+++ b/Source/WebCore/rendering/RenderFieldset.cpp
@@ -34,7 +34,7 @@
using namespace HTMLNames;
-RenderFieldset::RenderFieldset(HTMLFieldSetElement& element, std::unique_ptr<RenderStyle> style)
+RenderFieldset::RenderFieldset(HTMLFieldSetElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderFieldset.h b/Source/WebCore/rendering/RenderFieldset.h
index ac78b02..de057ba 100644
--- a/Source/WebCore/rendering/RenderFieldset.h
+++ b/Source/WebCore/rendering/RenderFieldset.h
@@ -33,7 +33,7 @@
class RenderFieldset final : public RenderBlockFlow {
public:
- RenderFieldset(HTMLFieldSetElement&, std::unique_ptr<RenderStyle>);
+ RenderFieldset(HTMLFieldSetElement&, RenderStyle&&);
enum FindLegendOption { IgnoreFloatingOrOutOfFlow, IncludeFloatingOrOutOfFlow };
RenderBox* findLegend(FindLegendOption = IgnoreFloatingOrOutOfFlow) const;
diff --git a/Source/WebCore/rendering/RenderFileUploadControl.cpp b/Source/WebCore/rendering/RenderFileUploadControl.cpp
index ff7a9e5..55e499c 100644
--- a/Source/WebCore/rendering/RenderFileUploadControl.cpp
+++ b/Source/WebCore/rendering/RenderFileUploadControl.cpp
@@ -58,7 +58,7 @@
#endif
const int buttonShadowHeight = 2;
-RenderFileUploadControl::RenderFileUploadControl(HTMLInputElement& input, std::unique_ptr<RenderStyle> style)
+RenderFileUploadControl::RenderFileUploadControl(HTMLInputElement& input, RenderStyle&& style)
: RenderBlockFlow(input, WTFMove(style))
, m_canReceiveDroppedFiles(input.canReceiveDroppedFiles())
{
diff --git a/Source/WebCore/rendering/RenderFileUploadControl.h b/Source/WebCore/rendering/RenderFileUploadControl.h
index e426ae1..b38f0fc 100644
--- a/Source/WebCore/rendering/RenderFileUploadControl.h
+++ b/Source/WebCore/rendering/RenderFileUploadControl.h
@@ -33,7 +33,7 @@
class RenderFileUploadControl final : public RenderBlockFlow {
public:
- RenderFileUploadControl(HTMLInputElement&, std::unique_ptr<RenderStyle>);
+ RenderFileUploadControl(HTMLInputElement&, RenderStyle&&);
virtual ~RenderFileUploadControl();
String buttonValue();
diff --git a/Source/WebCore/rendering/RenderFlexibleBox.cpp b/Source/WebCore/rendering/RenderFlexibleBox.cpp
index f6fdb35..4993d16 100644
--- a/Source/WebCore/rendering/RenderFlexibleBox.cpp
+++ b/Source/WebCore/rendering/RenderFlexibleBox.cpp
@@ -66,7 +66,7 @@
};
-RenderFlexibleBox::RenderFlexibleBox(Element& element, std::unique_ptr<RenderStyle> style)
+RenderFlexibleBox::RenderFlexibleBox(Element& element, RenderStyle&& style)
: RenderBlock(element, WTFMove(style), 0)
, m_orderIterator(*this)
, m_numberOfInFlowChildrenOnFirstLine(-1)
@@ -74,7 +74,7 @@
setChildrenInline(false); // All of our children must be block-level.
}
-RenderFlexibleBox::RenderFlexibleBox(Document& document, std::unique_ptr<RenderStyle> style)
+RenderFlexibleBox::RenderFlexibleBox(Document& document, RenderStyle&& style)
: RenderBlock(document, WTFMove(style), 0)
, m_orderIterator(*this)
, m_numberOfInFlowChildrenOnFirstLine(-1)
diff --git a/Source/WebCore/rendering/RenderFlexibleBox.h b/Source/WebCore/rendering/RenderFlexibleBox.h
index 01e8969..c939dd4 100644
--- a/Source/WebCore/rendering/RenderFlexibleBox.h
+++ b/Source/WebCore/rendering/RenderFlexibleBox.h
@@ -38,8 +38,8 @@
class RenderFlexibleBox : public RenderBlock {
public:
- RenderFlexibleBox(Element&, std::unique_ptr<RenderStyle>);
- RenderFlexibleBox(Document&, std::unique_ptr<RenderStyle>);
+ RenderFlexibleBox(Element&, RenderStyle&&);
+ RenderFlexibleBox(Document&, RenderStyle&&);
virtual ~RenderFlexibleBox();
const char* renderName() const override;
diff --git a/Source/WebCore/rendering/RenderFlowThread.cpp b/Source/WebCore/rendering/RenderFlowThread.cpp
index 5f5def1..463d6b2 100644
--- a/Source/WebCore/rendering/RenderFlowThread.cpp
+++ b/Source/WebCore/rendering/RenderFlowThread.cpp
@@ -52,7 +52,7 @@
namespace WebCore {
-RenderFlowThread::RenderFlowThread(Document& document, std::unique_ptr<RenderStyle> style)
+RenderFlowThread::RenderFlowThread(Document& document, RenderStyle&& style)
: RenderBlockFlow(document, WTFMove(style))
, m_previousRegionCount(0)
, m_autoLogicalHeightRegionsCount(0)
@@ -69,18 +69,18 @@
setFlowThreadState(InsideOutOfFlowThread);
}
-std::unique_ptr<RenderStyle> RenderFlowThread::createFlowThreadStyle(RenderStyle* parentStyle)
+RenderStyle RenderFlowThread::createFlowThreadStyle(RenderStyle* parentStyle)
{
auto newStyle = RenderStyle::create();
- newStyle->inheritFrom(parentStyle);
- newStyle->setDisplay(BLOCK);
- newStyle->setPosition(AbsolutePosition);
- newStyle->setZIndex(0);
- newStyle->setLeft(Length(0, Fixed));
- newStyle->setTop(Length(0, Fixed));
- newStyle->setWidth(Length(100, Percent));
- newStyle->setHeight(Length(100, Percent));
- newStyle->fontCascade().update(nullptr);
+ newStyle.inheritFrom(parentStyle);
+ newStyle.setDisplay(BLOCK);
+ newStyle.setPosition(AbsolutePosition);
+ newStyle.setZIndex(0);
+ newStyle.setLeft(Length(0, Fixed));
+ newStyle.setTop(Length(0, Fixed));
+ newStyle.setWidth(Length(100, Percent));
+ newStyle.setHeight(Length(100, Percent));
+ newStyle.fontCascade().update(nullptr);
return newStyle;
}
diff --git a/Source/WebCore/rendering/RenderFlowThread.h b/Source/WebCore/rendering/RenderFlowThread.h
index 09a12600..91d0f56 100644
--- a/Source/WebCore/rendering/RenderFlowThread.h
+++ b/Source/WebCore/rendering/RenderFlowThread.h
@@ -99,7 +99,7 @@
// Called when a descendant box's layout is finished and it has been positioned within its container.
virtual void flowThreadDescendantBoxLaidOut(RenderBox*) { }
- static std::unique_ptr<RenderStyle> createFlowThreadStyle(RenderStyle* parentStyle);
+ static RenderStyle createFlowThreadStyle(RenderStyle* parentStyle);
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
@@ -240,7 +240,7 @@
bool requiresLayer() const final { return true; }
protected:
- RenderFlowThread(Document&, std::unique_ptr<RenderStyle>);
+ RenderFlowThread(Document&, RenderStyle&&);
RenderFlowThread* locateFlowThreadContainingBlock() const override { return const_cast<RenderFlowThread*>(this); }
diff --git a/Source/WebCore/rendering/RenderFrame.cpp b/Source/WebCore/rendering/RenderFrame.cpp
index 252e1e11..1f26286 100644
--- a/Source/WebCore/rendering/RenderFrame.cpp
+++ b/Source/WebCore/rendering/RenderFrame.cpp
@@ -28,7 +28,7 @@
namespace WebCore {
-RenderFrame::RenderFrame(HTMLFrameElement& frame, std::unique_ptr<RenderStyle> style)
+RenderFrame::RenderFrame(HTMLFrameElement& frame, RenderStyle&& style)
: RenderFrameBase(frame, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderFrame.h b/Source/WebCore/rendering/RenderFrame.h
index 985c14d..61931bc 100644
--- a/Source/WebCore/rendering/RenderFrame.h
+++ b/Source/WebCore/rendering/RenderFrame.h
@@ -32,7 +32,7 @@
class RenderFrame final : public RenderFrameBase {
public:
- RenderFrame(HTMLFrameElement&, std::unique_ptr<RenderStyle>);
+ RenderFrame(HTMLFrameElement&, RenderStyle&&);
HTMLFrameElement& frameElement() const;
FrameEdgeInfo edgeInfo() const;
diff --git a/Source/WebCore/rendering/RenderFrameBase.cpp b/Source/WebCore/rendering/RenderFrameBase.cpp
index 5ac0162..86479af 100644
--- a/Source/WebCore/rendering/RenderFrameBase.cpp
+++ b/Source/WebCore/rendering/RenderFrameBase.cpp
@@ -33,7 +33,7 @@
namespace WebCore {
-RenderFrameBase::RenderFrameBase(HTMLFrameElementBase& element, std::unique_ptr<RenderStyle> style)
+RenderFrameBase::RenderFrameBase(HTMLFrameElementBase& element, RenderStyle&& style)
: RenderWidget(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderFrameBase.h b/Source/WebCore/rendering/RenderFrameBase.h
index df727b0..419dd58 100644
--- a/Source/WebCore/rendering/RenderFrameBase.h
+++ b/Source/WebCore/rendering/RenderFrameBase.h
@@ -37,7 +37,7 @@
// Base class for RenderFrame and RenderIFrame
class RenderFrameBase : public RenderWidget {
protected:
- RenderFrameBase(HTMLFrameElementBase&, std::unique_ptr<RenderStyle>);
+ RenderFrameBase(HTMLFrameElementBase&, RenderStyle&&);
public:
FrameView* childView() const { return downcast<FrameView>(RenderWidget::widget()); }
diff --git a/Source/WebCore/rendering/RenderFrameSet.cpp b/Source/WebCore/rendering/RenderFrameSet.cpp
index 510c412..da80011 100644
--- a/Source/WebCore/rendering/RenderFrameSet.cpp
+++ b/Source/WebCore/rendering/RenderFrameSet.cpp
@@ -45,7 +45,7 @@
namespace WebCore {
-RenderFrameSet::RenderFrameSet(HTMLFrameSetElement& frameSet, std::unique_ptr<RenderStyle> style)
+RenderFrameSet::RenderFrameSet(HTMLFrameSetElement& frameSet, RenderStyle&& style)
: RenderBox(frameSet, WTFMove(style), 0)
, m_isResizing(false)
, m_isChildResizing(false)
diff --git a/Source/WebCore/rendering/RenderFrameSet.h b/Source/WebCore/rendering/RenderFrameSet.h
index 63d03e0..b2469d7 100644
--- a/Source/WebCore/rendering/RenderFrameSet.h
+++ b/Source/WebCore/rendering/RenderFrameSet.h
@@ -55,7 +55,7 @@
class RenderFrameSet final : public RenderBox {
public:
- RenderFrameSet(HTMLFrameSetElement&, std::unique_ptr<RenderStyle>);
+ RenderFrameSet(HTMLFrameSetElement&, RenderStyle&&);
virtual ~RenderFrameSet();
HTMLFrameSetElement& frameSetElement() const;
diff --git a/Source/WebCore/rendering/RenderFullScreen.cpp b/Source/WebCore/rendering/RenderFullScreen.cpp
index f702c34..326479e 100644
--- a/Source/WebCore/rendering/RenderFullScreen.cpp
+++ b/Source/WebCore/rendering/RenderFullScreen.cpp
@@ -36,7 +36,7 @@
class RenderFullScreenPlaceholder final : public RenderBlockFlow {
public:
- RenderFullScreenPlaceholder(RenderFullScreen& owner, std::unique_ptr<RenderStyle> style)
+ RenderFullScreenPlaceholder(RenderFullScreen& owner, RenderStyle&& style)
: RenderBlockFlow(owner.document(), WTFMove(style))
, m_owner(owner)
{
@@ -54,7 +54,7 @@
RenderBlockFlow::willBeDestroyed();
}
-RenderFullScreen::RenderFullScreen(Document& document, std::unique_ptr<RenderStyle> style)
+RenderFullScreen::RenderFullScreen(Document& document, RenderStyle&& style)
: RenderFlexibleBox(document, WTFMove(style))
, m_placeholder(0)
{
@@ -78,28 +78,28 @@
RenderFlexibleBox::willBeDestroyed();
}
-static std::unique_ptr<RenderStyle> createFullScreenStyle()
+static RenderStyle createFullScreenStyle()
{
- auto fullscreenStyle = RenderStyle::createDefaultStyle();
+ auto fullscreenStyle = RenderStyle::create();
// Create a stacking context:
- fullscreenStyle->setZIndex(INT_MAX);
+ fullscreenStyle.setZIndex(INT_MAX);
- fullscreenStyle->setFontDescription({ });
- fullscreenStyle->fontCascade().update(nullptr);
+ fullscreenStyle.setFontDescription({ });
+ fullscreenStyle.fontCascade().update(nullptr);
- fullscreenStyle->setDisplay(FLEX);
- fullscreenStyle->setJustifyContentPosition(ContentPositionCenter);
- fullscreenStyle->setAlignItemsPosition(ItemPositionCenter);
- fullscreenStyle->setFlexDirection(FlowColumn);
+ fullscreenStyle.setDisplay(FLEX);
+ fullscreenStyle.setJustifyContentPosition(ContentPositionCenter);
+ fullscreenStyle.setAlignItemsPosition(ItemPositionCenter);
+ fullscreenStyle.setFlexDirection(FlowColumn);
- fullscreenStyle->setPosition(FixedPosition);
- fullscreenStyle->setWidth(Length(100.0, Percent));
- fullscreenStyle->setHeight(Length(100.0, Percent));
- fullscreenStyle->setLeft(Length(0, WebCore::Fixed));
- fullscreenStyle->setTop(Length(0, WebCore::Fixed));
+ fullscreenStyle.setPosition(FixedPosition);
+ fullscreenStyle.setWidth(Length(100.0, Percent));
+ fullscreenStyle.setHeight(Length(100.0, Percent));
+ fullscreenStyle.setLeft(Length(0, WebCore::Fixed));
+ fullscreenStyle.setTop(Length(0, WebCore::Fixed));
- fullscreenStyle->setBackgroundColor(Color::black);
+ fullscreenStyle.setBackgroundColor(Color::black);
return fullscreenStyle;
}
@@ -193,11 +193,11 @@
style->setHeight(Length(frameRect.height(), Fixed));
if (m_placeholder) {
- m_placeholder->setStyle(WTFMove(style));
+ m_placeholder->setStyle(WTFMove(*style));
return;
}
- m_placeholder = new RenderFullScreenPlaceholder(*this, WTFMove(style));
+ m_placeholder = new RenderFullScreenPlaceholder(*this, WTFMove(*style));
m_placeholder->initializeStyle();
if (parent()) {
parent()->addChild(m_placeholder, this);
diff --git a/Source/WebCore/rendering/RenderFullScreen.h b/Source/WebCore/rendering/RenderFullScreen.h
index 156bcd3..11a4341 100644
--- a/Source/WebCore/rendering/RenderFullScreen.h
+++ b/Source/WebCore/rendering/RenderFullScreen.h
@@ -34,7 +34,7 @@
class RenderFullScreen final : public RenderFlexibleBox {
public:
- RenderFullScreen(Document&, std::unique_ptr<RenderStyle>);
+ RenderFullScreen(Document&, RenderStyle&&);
const char* renderName() const override { return "RenderFullScreen"; }
diff --git a/Source/WebCore/rendering/RenderGrid.cpp b/Source/WebCore/rendering/RenderGrid.cpp
index 271e67d..66eaf6b 100644
--- a/Source/WebCore/rendering/RenderGrid.cpp
+++ b/Source/WebCore/rendering/RenderGrid.cpp
@@ -245,7 +245,7 @@
freeSpaceForRows = freeSpace;
}
-RenderGrid::RenderGrid(Element& element, std::unique_ptr<RenderStyle> style)
+RenderGrid::RenderGrid(Element& element, RenderStyle&& style)
: RenderBlock(element, WTFMove(style), 0)
, m_orderIterator(*this)
{
diff --git a/Source/WebCore/rendering/RenderGrid.h b/Source/WebCore/rendering/RenderGrid.h
index 4b50f51..114e6667 100644
--- a/Source/WebCore/rendering/RenderGrid.h
+++ b/Source/WebCore/rendering/RenderGrid.h
@@ -46,7 +46,7 @@
class RenderGrid final : public RenderBlock {
public:
- RenderGrid(Element&, std::unique_ptr<RenderStyle>);
+ RenderGrid(Element&, RenderStyle&&);
virtual ~RenderGrid();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderHTMLCanvas.cpp b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
index c7ff362..1c4bf00 100644
--- a/Source/WebCore/rendering/RenderHTMLCanvas.cpp
+++ b/Source/WebCore/rendering/RenderHTMLCanvas.cpp
@@ -42,7 +42,7 @@
using namespace HTMLNames;
-RenderHTMLCanvas::RenderHTMLCanvas(HTMLCanvasElement& element, std::unique_ptr<RenderStyle> style)
+RenderHTMLCanvas::RenderHTMLCanvas(HTMLCanvasElement& element, RenderStyle&& style)
: RenderReplaced(element, WTFMove(style), element.size())
{
// Actual size is not known yet, report the default intrinsic size.
diff --git a/Source/WebCore/rendering/RenderHTMLCanvas.h b/Source/WebCore/rendering/RenderHTMLCanvas.h
index e7a7d1b..01f3b24 100644
--- a/Source/WebCore/rendering/RenderHTMLCanvas.h
+++ b/Source/WebCore/rendering/RenderHTMLCanvas.h
@@ -34,7 +34,7 @@
class RenderHTMLCanvas final : public RenderReplaced {
public:
- RenderHTMLCanvas(HTMLCanvasElement&, std::unique_ptr<RenderStyle>);
+ RenderHTMLCanvas(HTMLCanvasElement&, RenderStyle&&);
HTMLCanvasElement& canvasElement() const;
diff --git a/Source/WebCore/rendering/RenderIFrame.cpp b/Source/WebCore/rendering/RenderIFrame.cpp
index d93bdeb..1bb91a4 100644
--- a/Source/WebCore/rendering/RenderIFrame.cpp
+++ b/Source/WebCore/rendering/RenderIFrame.cpp
@@ -39,7 +39,7 @@
using namespace HTMLNames;
-RenderIFrame::RenderIFrame(HTMLIFrameElement& element, std::unique_ptr<RenderStyle> style)
+RenderIFrame::RenderIFrame(HTMLIFrameElement& element, RenderStyle&& style)
: RenderFrameBase(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderIFrame.h b/Source/WebCore/rendering/RenderIFrame.h
index 0615f66..0389d0c 100644
--- a/Source/WebCore/rendering/RenderIFrame.h
+++ b/Source/WebCore/rendering/RenderIFrame.h
@@ -34,7 +34,7 @@
class RenderIFrame final : public RenderFrameBase {
public:
- RenderIFrame(HTMLIFrameElement&, std::unique_ptr<RenderStyle>);
+ RenderIFrame(HTMLIFrameElement&, RenderStyle&&);
HTMLIFrameElement& iframeElement() const;
diff --git a/Source/WebCore/rendering/RenderImage.cpp b/Source/WebCore/rendering/RenderImage.cpp
index 357c6af..ebef676 100644
--- a/Source/WebCore/rendering/RenderImage.cpp
+++ b/Source/WebCore/rendering/RenderImage.cpp
@@ -119,7 +119,7 @@
using namespace HTMLNames;
-RenderImage::RenderImage(Element& element, std::unique_ptr<RenderStyle> style, StyleImage* styleImage, const float imageDevicePixelRatio)
+RenderImage::RenderImage(Element& element, RenderStyle&& style, StyleImage* styleImage, const float imageDevicePixelRatio)
: RenderReplaced(element, WTFMove(style), IntSize())
, m_imageResource(styleImage ? std::make_unique<RenderImageResourceStyleImage>(*styleImage) : std::make_unique<RenderImageResource>())
, m_needsToSetSizeForAltText(false)
@@ -135,7 +135,7 @@
m_hasShadowControls = downcast<HTMLImageElement>(element).hasShadowControls();
}
-RenderImage::RenderImage(Document& document, std::unique_ptr<RenderStyle> style, StyleImage* styleImage)
+RenderImage::RenderImage(Document& document, RenderStyle&& style, StyleImage* styleImage)
: RenderReplaced(document, WTFMove(style), IntSize())
, m_imageResource(styleImage ? std::make_unique<RenderImageResourceStyleImage>(*styleImage) : std::make_unique<RenderImageResource>())
, m_needsToSetSizeForAltText(false)
diff --git a/Source/WebCore/rendering/RenderImage.h b/Source/WebCore/rendering/RenderImage.h
index 2903f98..d0f4259 100644
--- a/Source/WebCore/rendering/RenderImage.h
+++ b/Source/WebCore/rendering/RenderImage.h
@@ -40,8 +40,8 @@
class RenderImage : public RenderReplaced {
public:
- RenderImage(Element&, std::unique_ptr<RenderStyle>, StyleImage* = nullptr, const float = 1.0f);
- RenderImage(Document&, std::unique_ptr<RenderStyle>, StyleImage* = nullptr);
+ RenderImage(Element&, RenderStyle&&, StyleImage* = nullptr, const float = 1.0f);
+ RenderImage(Document&, RenderStyle&&, StyleImage* = nullptr);
virtual ~RenderImage();
RenderImageResource& imageResource() { return *m_imageResource; }
diff --git a/Source/WebCore/rendering/RenderInline.cpp b/Source/WebCore/rendering/RenderInline.cpp
index a096f5b..4c39ab9 100644
--- a/Source/WebCore/rendering/RenderInline.cpp
+++ b/Source/WebCore/rendering/RenderInline.cpp
@@ -52,13 +52,13 @@
namespace WebCore {
-RenderInline::RenderInline(Element& element, std::unique_ptr<RenderStyle> style)
+RenderInline::RenderInline(Element& element, RenderStyle&& style)
: RenderBoxModelObject(element, WTFMove(style), RenderInlineFlag)
{
setChildrenInline(true);
}
-RenderInline::RenderInline(Document& document, std::unique_ptr<RenderStyle> style)
+RenderInline::RenderInline(Document& document, RenderStyle&& style)
: RenderBoxModelObject(document, WTFMove(style), RenderInlineFlag)
{
setChildrenInline(true);
@@ -158,8 +158,8 @@
RenderInline* continuation = block.inlineElementContinuation();
if (oldStyle->hasInFlowPosition() && inFlowPositionedInlineAncestor(continuation))
continue;
- auto blockStyle = RenderStyle::createAnonymousStyleWithDisplay(&block.style(), BLOCK);
- blockStyle->setPosition(newStyle->position());
+ auto blockStyle = RenderStyle::createAnonymousStyleWithDisplay(block.style(), BLOCK);
+ blockStyle.setPosition(newStyle->position());
block.setStyle(WTFMove(blockStyle));
}
}
@@ -193,7 +193,7 @@
for (RenderInline* currCont = continuation; currCont; currCont = currCont->inlineElementContinuation()) {
RenderBoxModelObject* nextCont = currCont->continuation();
currCont->setContinuation(nullptr);
- currCont->setStyle(RenderStyle::clone(&newStyle));
+ currCont->setStyle(RenderStyle::clone(newStyle));
currCont->setContinuation(nextCont);
}
// If an inline's in-flow positioning has changed and it is part of an active continuation as a descendant of an anonymous containing block,
@@ -331,12 +331,12 @@
// inline into continuations. This involves creating an anonymous block box to hold
// |newChild|. We then make that block box a continuation of this inline. We take all of
// the children after |beforeChild| and put them in a clone of this object.
- auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK);
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
// If inside an inline affected by in-flow positioning the block needs to be affected by it too.
// Giving the block a layer like this allows it to collect the x/y offsets from inline parents later.
if (auto positionedAncestor = inFlowPositionedInlineAncestor(this))
- newStyle->setPosition(positionedAncestor->style().position());
+ newStyle.setPosition(positionedAncestor->style().position());
RenderBlock* newBox = new RenderBlockFlow(document(), WTFMove(newStyle));
newBox->initializeStyle();
@@ -397,7 +397,7 @@
if (!newChild->isFloatingOrOutOfFlowPositioned()) {
// There was no suitable existing anonymous inline-block. Create a new one.
- RenderBlockFlow* anonymousInlineBlock = new RenderBlockFlow(document(), RenderStyle::createAnonymousStyleWithDisplay(&style(), INLINE_BLOCK));
+ RenderBlockFlow* anonymousInlineBlock = new RenderBlockFlow(document(), RenderStyle::createAnonymousStyleWithDisplay(style(), INLINE_BLOCK));
anonymousInlineBlock->initializeStyle();
RenderBoxModelObject::addChild(anonymousInlineBlock, beforeChild);
@@ -413,7 +413,7 @@
RenderPtr<RenderInline> RenderInline::clone() const
{
- RenderPtr<RenderInline> cloneInline = createRenderer<RenderInline>(*element(), RenderStyle::clone(&style()));
+ RenderPtr<RenderInline> cloneInline = createRenderer<RenderInline>(*element(), RenderStyle::clone(style()));
cloneInline->initializeStyle();
cloneInline->setFlowThreadState(flowThreadState());
cloneInline->setHasOutlineAutoAncestor(hasOutlineAutoAncestor());
diff --git a/Source/WebCore/rendering/RenderInline.h b/Source/WebCore/rendering/RenderInline.h
index 6a8e2be..f268e97 100644
--- a/Source/WebCore/rendering/RenderInline.h
+++ b/Source/WebCore/rendering/RenderInline.h
@@ -34,8 +34,8 @@
class RenderInline : public RenderBoxModelObject {
public:
- RenderInline(Element&, std::unique_ptr<RenderStyle>);
- RenderInline(Document&, std::unique_ptr<RenderStyle>);
+ RenderInline(Element&, RenderStyle&&);
+ RenderInline(Document&, RenderStyle&&);
void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) override;
diff --git a/Source/WebCore/rendering/RenderLayer.cpp b/Source/WebCore/rendering/RenderLayer.cpp
index f91a2f9..78414d3 100644
--- a/Source/WebCore/rendering/RenderLayer.cpp
+++ b/Source/WebCore/rendering/RenderLayer.cpp
@@ -6797,11 +6797,11 @@
}
if (!m_scrollCorner) {
- m_scrollCorner = createRenderer<RenderScrollbarPart>(renderer().document(), WTFMove(corner));
+ m_scrollCorner = createRenderer<RenderScrollbarPart>(renderer().document(), WTFMove(*corner));
m_scrollCorner->setParent(&renderer());
m_scrollCorner->initializeStyle();
} else
- m_scrollCorner->setStyle(WTFMove(corner));
+ m_scrollCorner->setStyle(WTFMove(*corner));
}
void RenderLayer::updateResizerStyle()
@@ -6815,11 +6815,11 @@
}
if (!m_resizer) {
- m_resizer = createRenderer<RenderScrollbarPart>(renderer().document(), WTFMove(resizer));
+ m_resizer = createRenderer<RenderScrollbarPart>(renderer().document(), WTFMove(*resizer));
m_resizer->setParent(&renderer());
m_resizer->initializeStyle();
} else
- m_resizer->setStyle(WTFMove(resizer));
+ m_resizer->setStyle(WTFMove(*resizer));
}
RenderLayer* RenderLayer::reflectionLayer() const
@@ -6844,10 +6844,10 @@
m_reflection = nullptr;
}
-std::unique_ptr<RenderStyle> RenderLayer::createReflectionStyle()
+RenderStyle RenderLayer::createReflectionStyle()
{
auto newStyle = RenderStyle::create();
- newStyle->inheritFrom(&renderer().style());
+ newStyle.inheritFrom(&renderer().style());
// Map in our transform.
TransformOperations transform;
@@ -6873,10 +6873,10 @@
transform.operations().append(TranslateTransformOperation::create(renderer().style().boxReflect()->offset(), Length(0, Fixed), TransformOperation::TRANSLATE));
break;
}
- newStyle->setTransform(transform);
+ newStyle.setTransform(transform);
// Map in our mask.
- newStyle->setMaskBoxImage(renderer().style().boxReflect()->mask());
+ newStyle.setMaskBoxImage(renderer().style().boxReflect()->mask());
return newStyle;
}
diff --git a/Source/WebCore/rendering/RenderLayer.h b/Source/WebCore/rendering/RenderLayer.h
index 0e7e5a3..13396bd 100644
--- a/Source/WebCore/rendering/RenderLayer.h
+++ b/Source/WebCore/rendering/RenderLayer.h
@@ -924,7 +924,7 @@
void createReflection();
void removeReflection();
- std::unique_ptr<RenderStyle> createReflectionStyle();
+ RenderStyle createReflectionStyle();
bool paintingInsideReflection() const { return m_paintingInsideReflection; }
void setPaintingInsideReflection(bool b) { m_paintingInsideReflection = b; }
diff --git a/Source/WebCore/rendering/RenderLayerModelObject.cpp b/Source/WebCore/rendering/RenderLayerModelObject.cpp
index d0451cf..bd9e65b 100644
--- a/Source/WebCore/rendering/RenderLayerModelObject.cpp
+++ b/Source/WebCore/rendering/RenderLayerModelObject.cpp
@@ -36,12 +36,12 @@
bool RenderLayerModelObject::s_hadTransform = false;
bool RenderLayerModelObject::s_layerWasSelfPainting = false;
-RenderLayerModelObject::RenderLayerModelObject(Element& element, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderLayerModelObject::RenderLayerModelObject(Element& element, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderElement(element, WTFMove(style), baseTypeFlags | RenderLayerModelObjectFlag)
{
}
-RenderLayerModelObject::RenderLayerModelObject(Document& document, std::unique_ptr<RenderStyle> style, BaseTypeFlags baseTypeFlags)
+RenderLayerModelObject::RenderLayerModelObject(Document& document, RenderStyle&& style, BaseTypeFlags baseTypeFlags)
: RenderElement(document, WTFMove(style), baseTypeFlags | RenderLayerModelObjectFlag)
{
}
diff --git a/Source/WebCore/rendering/RenderLayerModelObject.h b/Source/WebCore/rendering/RenderLayerModelObject.h
index d879016..67ebc72 100644
--- a/Source/WebCore/rendering/RenderLayerModelObject.h
+++ b/Source/WebCore/rendering/RenderLayerModelObject.h
@@ -52,8 +52,8 @@
virtual bool isScrollableOrRubberbandableBox() const { return false; }
protected:
- RenderLayerModelObject(Element&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
- RenderLayerModelObject(Document&, std::unique_ptr<RenderStyle>, BaseTypeFlags);
+ RenderLayerModelObject(Element&, RenderStyle&&, BaseTypeFlags);
+ RenderLayerModelObject(Document&, RenderStyle&&, BaseTypeFlags);
void createLayer();
diff --git a/Source/WebCore/rendering/RenderLineBreak.cpp b/Source/WebCore/rendering/RenderLineBreak.cpp
index c6cf347..9912bc7 100644
--- a/Source/WebCore/rendering/RenderLineBreak.cpp
+++ b/Source/WebCore/rendering/RenderLineBreak.cpp
@@ -55,7 +55,7 @@
downcast<RenderBlockFlow>(*renderer.parent()).ensureLineBoxes();
}
-RenderLineBreak::RenderLineBreak(HTMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderLineBreak::RenderLineBreak(HTMLElement& element, RenderStyle&& style)
: RenderBoxModelObject(element, WTFMove(style), 0)
, m_inlineBoxWrapper(nullptr)
, m_cachedLineHeight(invalidLineHeight)
diff --git a/Source/WebCore/rendering/RenderLineBreak.h b/Source/WebCore/rendering/RenderLineBreak.h
index 30442a7..11fd3bd 100644
--- a/Source/WebCore/rendering/RenderLineBreak.h
+++ b/Source/WebCore/rendering/RenderLineBreak.h
@@ -32,7 +32,7 @@
class RenderLineBreak final : public RenderBoxModelObject {
public:
- RenderLineBreak(HTMLElement&, std::unique_ptr<RenderStyle>);
+ RenderLineBreak(HTMLElement&, RenderStyle&&);
virtual ~RenderLineBreak();
// FIXME: The lies here keep render tree dump based test results unchanged.
diff --git a/Source/WebCore/rendering/RenderListBox.cpp b/Source/WebCore/rendering/RenderListBox.cpp
index 779a539..eb6340d 100644
--- a/Source/WebCore/rendering/RenderListBox.cpp
+++ b/Source/WebCore/rendering/RenderListBox.cpp
@@ -83,7 +83,7 @@
// widget, but I'm not sure this is right for the new control.
const int baselineAdjustment = 7;
-RenderListBox::RenderListBox(HTMLSelectElement& element, std::unique_ptr<RenderStyle> style)
+RenderListBox::RenderListBox(HTMLSelectElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
, m_optionsChanged(true)
, m_scrollToRevealSelectionAfterLayout(false)
diff --git a/Source/WebCore/rendering/RenderListBox.h b/Source/WebCore/rendering/RenderListBox.h
index 3bf29eb..9daa8d6 100644
--- a/Source/WebCore/rendering/RenderListBox.h
+++ b/Source/WebCore/rendering/RenderListBox.h
@@ -40,7 +40,7 @@
class RenderListBox final : public RenderBlockFlow, public ScrollableArea {
public:
- RenderListBox(HTMLSelectElement&, std::unique_ptr<RenderStyle>);
+ RenderListBox(HTMLSelectElement&, RenderStyle&&);
virtual ~RenderListBox();
HTMLSelectElement& selectElement() const;
diff --git a/Source/WebCore/rendering/RenderListItem.cpp b/Source/WebCore/rendering/RenderListItem.cpp
index 6f31ee8..284ceb1 100644
--- a/Source/WebCore/rendering/RenderListItem.cpp
+++ b/Source/WebCore/rendering/RenderListItem.cpp
@@ -44,7 +44,7 @@
using namespace HTMLNames;
-RenderListItem::RenderListItem(Element& element, std::unique_ptr<RenderStyle> style)
+RenderListItem::RenderListItem(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
, m_marker(nullptr)
, m_hasExplicitValue(false)
@@ -78,7 +78,7 @@
auto newStyle = RenderStyle::create();
// The marker always inherits from the list item, regardless of where it might end
// up (e.g., in some deeply nested line box). See CSS3 spec.
- newStyle->inheritFrom(&style());
+ newStyle.inheritFrom(&style());
if (!m_marker) {
m_marker = createRenderer<RenderListMarker>(*this, WTFMove(newStyle)).leakPtr();
m_marker->initializeStyle();
diff --git a/Source/WebCore/rendering/RenderListItem.h b/Source/WebCore/rendering/RenderListItem.h
index b83ca18..fd8d6ef 100644
--- a/Source/WebCore/rendering/RenderListItem.h
+++ b/Source/WebCore/rendering/RenderListItem.h
@@ -33,7 +33,7 @@
class RenderListItem final : public RenderBlockFlow {
public:
- RenderListItem(Element&, std::unique_ptr<RenderStyle>);
+ RenderListItem(Element&, RenderStyle&&);
virtual ~RenderListItem();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderListMarker.cpp b/Source/WebCore/rendering/RenderListMarker.cpp
index a29eef2..c92d92f 100644
--- a/Source/WebCore/rendering/RenderListMarker.cpp
+++ b/Source/WebCore/rendering/RenderListMarker.cpp
@@ -1117,7 +1117,7 @@
return builder.toString();
}
-RenderListMarker::RenderListMarker(RenderListItem& listItem, std::unique_ptr<RenderStyle> style)
+RenderListMarker::RenderListMarker(RenderListItem& listItem, RenderStyle&& style)
: RenderBox(listItem.document(), WTFMove(style), 0)
, m_listItem(listItem)
{
diff --git a/Source/WebCore/rendering/RenderListMarker.h b/Source/WebCore/rendering/RenderListMarker.h
index 22e3d36..d11f4d9 100644
--- a/Source/WebCore/rendering/RenderListMarker.h
+++ b/Source/WebCore/rendering/RenderListMarker.h
@@ -35,7 +35,7 @@
// The RenderListMarker always has to be a child of a RenderListItem.
class RenderListMarker final : public RenderBox {
public:
- RenderListMarker(RenderListItem&, std::unique_ptr<RenderStyle>);
+ RenderListMarker(RenderListItem&, RenderStyle&&);
virtual ~RenderListMarker();
const String& text() const { return m_text; }
diff --git a/Source/WebCore/rendering/RenderMedia.cpp b/Source/WebCore/rendering/RenderMedia.cpp
index d0394b7..9263909 100644
--- a/Source/WebCore/rendering/RenderMedia.cpp
+++ b/Source/WebCore/rendering/RenderMedia.cpp
@@ -34,13 +34,13 @@
namespace WebCore {
-RenderMedia::RenderMedia(HTMLMediaElement& element, std::unique_ptr<RenderStyle> style)
+RenderMedia::RenderMedia(HTMLMediaElement& element, RenderStyle&& style)
: RenderImage(element, WTFMove(style))
{
setHasShadowControls(true);
}
-RenderMedia::RenderMedia(HTMLMediaElement& element, std::unique_ptr<RenderStyle> style, const IntSize& intrinsicSize)
+RenderMedia::RenderMedia(HTMLMediaElement& element, RenderStyle&& style, const IntSize& intrinsicSize)
: RenderImage(element, WTFMove(style))
{
setIntrinsicSize(intrinsicSize);
diff --git a/Source/WebCore/rendering/RenderMedia.h b/Source/WebCore/rendering/RenderMedia.h
index af88f71..67ab5cb 100644
--- a/Source/WebCore/rendering/RenderMedia.h
+++ b/Source/WebCore/rendering/RenderMedia.h
@@ -35,8 +35,8 @@
class RenderMedia : public RenderImage {
public:
- RenderMedia(HTMLMediaElement&, std::unique_ptr<RenderStyle>);
- RenderMedia(HTMLMediaElement&, std::unique_ptr<RenderStyle>, const IntSize& intrinsicSize);
+ RenderMedia(HTMLMediaElement&, RenderStyle&&);
+ RenderMedia(HTMLMediaElement&, RenderStyle&&, const IntSize& intrinsicSize);
virtual ~RenderMedia();
HTMLMediaElement& mediaElement() const { return downcast<HTMLMediaElement>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderMediaControlElements.cpp b/Source/WebCore/rendering/RenderMediaControlElements.cpp
index 6799ee3..c5f7bb7 100644
--- a/Source/WebCore/rendering/RenderMediaControlElements.cpp
+++ b/Source/WebCore/rendering/RenderMediaControlElements.cpp
@@ -35,7 +35,7 @@
namespace WebCore {
-RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMediaVolumeSliderContainer::RenderMediaVolumeSliderContainer(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
@@ -59,7 +59,7 @@
// ----------------------------
-RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMediaControlTimelineContainer::RenderMediaControlTimelineContainer(Element& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
{
}
@@ -81,7 +81,7 @@
#if ENABLE(VIDEO_TRACK)
-RenderTextTrackContainerElement::RenderTextTrackContainerElement(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTextTrackContainerElement::RenderTextTrackContainerElement(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderMediaControlElements.h b/Source/WebCore/rendering/RenderMediaControlElements.h
index 36b9839..08b2555 100644
--- a/Source/WebCore/rendering/RenderMediaControlElements.h
+++ b/Source/WebCore/rendering/RenderMediaControlElements.h
@@ -38,7 +38,7 @@
class RenderMediaVolumeSliderContainer final : public RenderBlockFlow {
public:
- RenderMediaVolumeSliderContainer(Element&, std::unique_ptr<RenderStyle>);
+ RenderMediaVolumeSliderContainer(Element&, RenderStyle&&);
private:
void layout() override;
@@ -48,7 +48,7 @@
class RenderMediaControlTimelineContainer final : public RenderFlexibleBox {
public:
- RenderMediaControlTimelineContainer(Element&, std::unique_ptr<RenderStyle>);
+ RenderMediaControlTimelineContainer(Element&, RenderStyle&&);
private:
void layout() override;
@@ -61,7 +61,7 @@
class RenderTextTrackContainerElement final : public RenderBlockFlow {
public:
- RenderTextTrackContainerElement(Element&, std::unique_ptr<RenderStyle>);
+ RenderTextTrackContainerElement(Element&, RenderStyle&&);
private:
void layout() override;
diff --git a/Source/WebCore/rendering/RenderMenuList.cpp b/Source/WebCore/rendering/RenderMenuList.cpp
index 5d2d45162..3cd0ec8 100644
--- a/Source/WebCore/rendering/RenderMenuList.cpp
+++ b/Source/WebCore/rendering/RenderMenuList.cpp
@@ -70,7 +70,7 @@
}
#endif
-RenderMenuList::RenderMenuList(HTMLSelectElement& element, std::unique_ptr<RenderStyle> style)
+RenderMenuList::RenderMenuList(HTMLSelectElement& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
, m_buttonText(nullptr)
, m_innerBlock(nullptr)
@@ -266,7 +266,7 @@
if (is<HTMLOptionElement>(*element)) {
text = downcast<HTMLOptionElement>(*element).textIndentedToRespectGroupLabel();
auto* style = element->computedStyle();
- m_optionStyle = style ? RenderStyle::clone(style) : nullptr;
+ m_optionStyle = style ? RenderStyle::clonePtr(*style) : nullptr;
}
}
diff --git a/Source/WebCore/rendering/RenderMenuList.h b/Source/WebCore/rendering/RenderMenuList.h
index 4582a5d..3cacf74 100644
--- a/Source/WebCore/rendering/RenderMenuList.h
+++ b/Source/WebCore/rendering/RenderMenuList.h
@@ -43,7 +43,7 @@
class RenderMenuList final : public RenderFlexibleBox, private PopupMenuClient {
public:
- RenderMenuList(HTMLSelectElement&, std::unique_ptr<RenderStyle>);
+ RenderMenuList(HTMLSelectElement&, RenderStyle&&);
virtual ~RenderMenuList();
HTMLSelectElement& selectElement() const;
diff --git a/Source/WebCore/rendering/RenderMeter.cpp b/Source/WebCore/rendering/RenderMeter.cpp
index 9201562..c9691b5 100644
--- a/Source/WebCore/rendering/RenderMeter.cpp
+++ b/Source/WebCore/rendering/RenderMeter.cpp
@@ -30,7 +30,7 @@
using namespace HTMLNames;
-RenderMeter::RenderMeter(HTMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderMeter::RenderMeter(HTMLElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderMeter.h b/Source/WebCore/rendering/RenderMeter.h
index ae0f748..c60473a 100644
--- a/Source/WebCore/rendering/RenderMeter.h
+++ b/Source/WebCore/rendering/RenderMeter.h
@@ -32,7 +32,7 @@
class RenderMeter final : public RenderBlockFlow {
public:
- RenderMeter(HTMLElement&, std::unique_ptr<RenderStyle>);
+ RenderMeter(HTMLElement&, RenderStyle&&);
virtual ~RenderMeter();
HTMLMeterElement* meterElement() const;
diff --git a/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp b/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp
index 8c64427..e3ed9b0 100644
--- a/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp
+++ b/Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp
@@ -38,7 +38,7 @@
bool RenderMultiColumnFlowThread::gShiftingSpanner = false;
-RenderMultiColumnFlowThread::RenderMultiColumnFlowThread(Document& document, std::unique_ptr<RenderStyle> style)
+RenderMultiColumnFlowThread::RenderMultiColumnFlowThread(Document& document, RenderStyle&& style)
: RenderFlowThread(document, WTFMove(style))
, m_lastSetWorkedOn(nullptr)
, m_columnCount(1)
@@ -338,7 +338,7 @@
// Need to create a new column set when there's no set already created. We also always insert
// another column set after a spanner. Even if it turns out that there are no renderers
// following the spanner, there may be bottom margins there, which take up space.
- RenderMultiColumnSet* newSet = new RenderMultiColumnSet(*this, RenderStyle::createAnonymousStyleWithDisplay(&multicolContainer->style(), BLOCK));
+ RenderMultiColumnSet* newSet = new RenderMultiColumnSet(*this, RenderStyle::createAnonymousStyleWithDisplay(multicolContainer->style(), BLOCK));
newSet->initializeStyle();
multicolContainer->RenderBlock::addChild(newSet, insertBeforeMulticolChild);
invalidateRegions();
diff --git a/Source/WebCore/rendering/RenderMultiColumnFlowThread.h b/Source/WebCore/rendering/RenderMultiColumnFlowThread.h
index f942321..cdc0f74 100644
--- a/Source/WebCore/rendering/RenderMultiColumnFlowThread.h
+++ b/Source/WebCore/rendering/RenderMultiColumnFlowThread.h
@@ -38,7 +38,7 @@
class RenderMultiColumnFlowThread final : public RenderFlowThread {
public:
- RenderMultiColumnFlowThread(Document&, std::unique_ptr<RenderStyle>);
+ RenderMultiColumnFlowThread(Document&, RenderStyle&&);
~RenderMultiColumnFlowThread();
RenderBlockFlow* multiColumnBlockFlow() const { return downcast<RenderBlockFlow>(parent()); }
diff --git a/Source/WebCore/rendering/RenderMultiColumnSet.cpp b/Source/WebCore/rendering/RenderMultiColumnSet.cpp
index 85531e4..8ea6fee 100644
--- a/Source/WebCore/rendering/RenderMultiColumnSet.cpp
+++ b/Source/WebCore/rendering/RenderMultiColumnSet.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderMultiColumnSet::RenderMultiColumnSet(RenderFlowThread& flowThread, std::unique_ptr<RenderStyle> style)
+RenderMultiColumnSet::RenderMultiColumnSet(RenderFlowThread& flowThread, RenderStyle&& style)
: RenderRegionSet(flowThread.document(), WTFMove(style), flowThread)
, m_computedColumnCount(1)
, m_computedColumnWidth(0)
diff --git a/Source/WebCore/rendering/RenderMultiColumnSet.h b/Source/WebCore/rendering/RenderMultiColumnSet.h
index dc9004c..4115477 100644
--- a/Source/WebCore/rendering/RenderMultiColumnSet.h
+++ b/Source/WebCore/rendering/RenderMultiColumnSet.h
@@ -46,7 +46,7 @@
// come before and after the span.
class RenderMultiColumnSet final : public RenderRegionSet {
public:
- RenderMultiColumnSet(RenderFlowThread&, std::unique_ptr<RenderStyle>);
+ RenderMultiColumnSet(RenderFlowThread&, RenderStyle&&);
RenderBlockFlow* multiColumnBlockFlow() const { return downcast<RenderBlockFlow>(parent()); }
RenderMultiColumnFlowThread* multiColumnFlowThread() const { return static_cast<RenderMultiColumnFlowThread*>(flowThread()); }
diff --git a/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp b/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp
index 70e8790..e073f81 100644
--- a/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp
+++ b/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.cpp
@@ -36,14 +36,14 @@
RenderMultiColumnSpannerPlaceholder* RenderMultiColumnSpannerPlaceholder::createAnonymous(RenderMultiColumnFlowThread* flowThread, RenderBox* spanner, RenderStyle* parentStyle)
{
- std::unique_ptr<RenderStyle> newStyle(RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK));
- newStyle->setClear(CBOTH); // We don't want floats in the row preceding the spanner to continue on the other side.
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(*parentStyle, BLOCK);
+ newStyle.setClear(CBOTH); // We don't want floats in the row preceding the spanner to continue on the other side.
auto placeholder = new RenderMultiColumnSpannerPlaceholder(flowThread, spanner, WTFMove(newStyle));
placeholder->initializeStyle();
return placeholder;
}
-RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder(RenderMultiColumnFlowThread* flowThread, RenderBox* spanner, std::unique_ptr<RenderStyle> style)
+RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder(RenderMultiColumnFlowThread* flowThread, RenderBox* spanner, RenderStyle&& style)
: RenderBox(flowThread->document(), WTFMove(style), RenderBoxModelObjectFlag)
, m_spanner(spanner)
, m_flowThread(flowThread)
diff --git a/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h b/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h
index 884060a..8fec6ec 100644
--- a/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h
+++ b/Source/WebCore/rendering/RenderMultiColumnSpannerPlaceholder.h
@@ -44,7 +44,7 @@
RenderMultiColumnFlowThread* flowThread() const { return m_flowThread; }
private:
- RenderMultiColumnSpannerPlaceholder(RenderMultiColumnFlowThread*, RenderBox* spanner, std::unique_ptr<RenderStyle>);
+ RenderMultiColumnSpannerPlaceholder(RenderMultiColumnFlowThread*, RenderBox* spanner, RenderStyle&&);
bool isRenderMultiColumnSpannerPlaceholder() const override { return true; }
bool canHaveChildren() const override { return false; }
diff --git a/Source/WebCore/rendering/RenderNamedFlowFragment.cpp b/Source/WebCore/rendering/RenderNamedFlowFragment.cpp
index 880970a..6fb730c 100644
--- a/Source/WebCore/rendering/RenderNamedFlowFragment.cpp
+++ b/Source/WebCore/rendering/RenderNamedFlowFragment.cpp
@@ -44,7 +44,7 @@
namespace WebCore {
-RenderNamedFlowFragment::RenderNamedFlowFragment(Document& document, std::unique_ptr<RenderStyle> style)
+RenderNamedFlowFragment::RenderNamedFlowFragment(Document& document, RenderStyle&& style)
: RenderRegion(document, WTFMove(style), nullptr)
, m_hasCustomRegionStyle(false)
, m_hasAutoLogicalHeight(false)
@@ -57,13 +57,13 @@
{
}
-std::unique_ptr<RenderStyle> RenderNamedFlowFragment::createStyle(const RenderStyle& parentStyle)
+RenderStyle RenderNamedFlowFragment::createStyle(const RenderStyle& parentStyle)
{
- auto style = RenderStyle::createAnonymousStyleWithDisplay(&parentStyle, BLOCK);
+ auto style = RenderStyle::createAnonymousStyleWithDisplay(parentStyle, BLOCK);
- style->setFlowThread(parentStyle.flowThread());
- style->setRegionThread(parentStyle.regionThread());
- style->setRegionFragment(parentStyle.regionFragment());
+ style.setFlowThread(parentStyle.flowThread());
+ style.setRegionThread(parentStyle.regionThread());
+ style.setRegionFragment(parentStyle.regionFragment());
return style;
}
@@ -366,13 +366,13 @@
std::unique_ptr<RenderStyle> childStyleInRegion;
bool objectRegionStyleCached = false;
if (it != m_renderObjectRegionStyle.end()) {
- childStyleInRegion = RenderStyle::clone(it->value.style.get());
+ childStyleInRegion = RenderStyle::clonePtr(*it->value.style);
objectRegionStyleCached = true;
} else {
if (child.isAnonymous() || child.isInFlowRenderFlowThread())
- childStyleInRegion = RenderStyle::createAnonymousStyleWithDisplay(&renderer.style(), child.style().display());
+ childStyleInRegion = std::make_unique<RenderStyle>(RenderStyle::createAnonymousStyleWithDisplay(renderer.style(), child.style().display()));
else if (is<RenderText>(child))
- childStyleInRegion = RenderStyle::clone(&renderer.style());
+ childStyleInRegion = RenderStyle::clonePtr(renderer.style());
else
childStyleInRegion = computeStyleInRegion(downcast<RenderElement>(child), renderer.style());
}
@@ -388,9 +388,9 @@
{
ASSERT(object->flowThreadContainingBlock());
- std::unique_ptr<RenderStyle> objectOriginalStyle = RenderStyle::clone(&object->style());
+ std::unique_ptr<RenderStyle> objectOriginalStyle = RenderStyle::clonePtr(object->style());
if (is<RenderElement>(*object))
- downcast<RenderElement>(*object).setStyleInternal(WTFMove(styleInRegion));
+ downcast<RenderElement>(*object).setStyleInternal(WTFMove(*styleInRegion));
if (is<RenderBoxModelObject>(*object) && !object->hasBoxDecorations()) {
bool hasBoxDecorations = is<RenderTableCell>(*object)
@@ -443,7 +443,7 @@
std::unique_ptr<RenderStyle> objectStyleInRegion;
bool objectRegionStyleCached = false;
if (it != m_renderObjectRegionStyle.end()) {
- objectStyleInRegion = RenderStyle::clone(it->value.style.get());
+ objectStyleInRegion = RenderStyle::clonePtr(*it->value.style);
ASSERT(it->value.cached);
objectRegionStyleCached = true;
} else
@@ -463,8 +463,8 @@
RenderObjectRegionStyleMap temp;
for (auto& objectPair : m_renderObjectRegionStyle) {
RenderObject* object = const_cast<RenderObject*>(objectPair.key);
- std::unique_ptr<RenderStyle> objectRegionStyle = RenderStyle::clone(&object->style());
- std::unique_ptr<RenderStyle> objectOriginalStyle = RenderStyle::clone(objectPair.value.style.get());
+ std::unique_ptr<RenderStyle> objectRegionStyle = RenderStyle::clonePtr(object->style());
+ std::unique_ptr<RenderStyle> objectOriginalStyle = RenderStyle::clonePtr(*objectPair.value.style);
bool shouldCacheRegionStyle = objectPair.value.cached;
if (!shouldCacheRegionStyle) {
@@ -481,7 +481,7 @@
temp.set(object, WTFMove(styleInfo));
}
if (is<RenderElement>(*object))
- downcast<RenderElement>(*object).setStyleInternal(WTFMove(objectOriginalStyle));
+ downcast<RenderElement>(*object).setStyleInternal(WTFMove(*objectOriginalStyle));
}
m_renderObjectRegionStyle.swap(temp);
diff --git a/Source/WebCore/rendering/RenderNamedFlowFragment.h b/Source/WebCore/rendering/RenderNamedFlowFragment.h
index 3f4cff9..8aba694 100644
--- a/Source/WebCore/rendering/RenderNamedFlowFragment.h
+++ b/Source/WebCore/rendering/RenderNamedFlowFragment.h
@@ -49,10 +49,10 @@
class RenderNamedFlowFragment final : public RenderRegion {
public:
- RenderNamedFlowFragment(Document&, std::unique_ptr<RenderStyle>);
+ RenderNamedFlowFragment(Document&, RenderStyle&&);
virtual ~RenderNamedFlowFragment();
- static std::unique_ptr<RenderStyle> createStyle(const RenderStyle& parentStyle);
+ static RenderStyle createStyle(const RenderStyle& parentStyle);
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
diff --git a/Source/WebCore/rendering/RenderNamedFlowThread.cpp b/Source/WebCore/rendering/RenderNamedFlowThread.cpp
index d7f7506..7fb0338 100644
--- a/Source/WebCore/rendering/RenderNamedFlowThread.cpp
+++ b/Source/WebCore/rendering/RenderNamedFlowThread.cpp
@@ -46,7 +46,7 @@
namespace WebCore {
-RenderNamedFlowThread::RenderNamedFlowThread(Document& document, std::unique_ptr<RenderStyle> style, Ref<WebKitNamedFlow>&& namedFlow)
+RenderNamedFlowThread::RenderNamedFlowThread(Document& document, RenderStyle&& style, Ref<WebKitNamedFlow>&& namedFlow)
: RenderFlowThread(document, WTFMove(style))
, m_hasRegionsWithStyling(false)
, m_dispatchRegionOversetChangeEvent(false)
@@ -92,8 +92,8 @@
return;
// The first region defines the principal writing mode for the entire flow.
- auto newStyle = RenderStyle::clone(&style());
- newStyle->setWritingMode(firstFragment->style().writingMode());
+ auto newStyle = RenderStyle::clone(style());
+ newStyle.setWritingMode(firstFragment->style().writingMode());
setStyle(WTFMove(newStyle));
}
diff --git a/Source/WebCore/rendering/RenderNamedFlowThread.h b/Source/WebCore/rendering/RenderNamedFlowThread.h
index cf79e9b..26ff731 100644
--- a/Source/WebCore/rendering/RenderNamedFlowThread.h
+++ b/Source/WebCore/rendering/RenderNamedFlowThread.h
@@ -46,7 +46,7 @@
class RenderNamedFlowThread final : public RenderFlowThread, public SelectionSubtreeRoot {
public:
- RenderNamedFlowThread(Document&, std::unique_ptr<RenderStyle>, Ref<WebKitNamedFlow>&&);
+ RenderNamedFlowThread(Document&, RenderStyle&&, Ref<WebKitNamedFlow>&&);
virtual ~RenderNamedFlowThread();
const AtomicString& flowThreadName() const;
diff --git a/Source/WebCore/rendering/RenderProgress.cpp b/Source/WebCore/rendering/RenderProgress.cpp
index aa55182..9a1f240 100644
--- a/Source/WebCore/rendering/RenderProgress.cpp
+++ b/Source/WebCore/rendering/RenderProgress.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-RenderProgress::RenderProgress(HTMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderProgress::RenderProgress(HTMLElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
, m_position(HTMLProgressElement::InvalidPosition)
, m_animationStartTime(0)
diff --git a/Source/WebCore/rendering/RenderProgress.h b/Source/WebCore/rendering/RenderProgress.h
index c52f630..82cf46f1 100644
--- a/Source/WebCore/rendering/RenderProgress.h
+++ b/Source/WebCore/rendering/RenderProgress.h
@@ -29,7 +29,7 @@
class RenderProgress final : public RenderBlockFlow {
public:
- RenderProgress(HTMLElement&, std::unique_ptr<RenderStyle>);
+ RenderProgress(HTMLElement&, RenderStyle&&);
virtual ~RenderProgress();
double position() const { return m_position; }
diff --git a/Source/WebCore/rendering/RenderQuote.cpp b/Source/WebCore/rendering/RenderQuote.cpp
index ae30e48..4f7bf9e 100644
--- a/Source/WebCore/rendering/RenderQuote.cpp
+++ b/Source/WebCore/rendering/RenderQuote.cpp
@@ -31,7 +31,7 @@
namespace WebCore {
-RenderQuote::RenderQuote(Document& document, std::unique_ptr<RenderStyle> style, QuoteType quote)
+RenderQuote::RenderQuote(Document& document, RenderStyle&& style, QuoteType quote)
: RenderInline(document, WTFMove(style))
, m_type(quote)
, m_text(emptyString())
diff --git a/Source/WebCore/rendering/RenderQuote.h b/Source/WebCore/rendering/RenderQuote.h
index 61f83d5..76b7021 100644
--- a/Source/WebCore/rendering/RenderQuote.h
+++ b/Source/WebCore/rendering/RenderQuote.h
@@ -29,7 +29,7 @@
class RenderQuote final : public RenderInline {
public:
- RenderQuote(Document&, std::unique_ptr<RenderStyle>, QuoteType);
+ RenderQuote(Document&, RenderStyle&&, QuoteType);
virtual ~RenderQuote();
void attachQuote();
diff --git a/Source/WebCore/rendering/RenderRegion.cpp b/Source/WebCore/rendering/RenderRegion.cpp
index 8782571..efa0722 100644
--- a/Source/WebCore/rendering/RenderRegion.cpp
+++ b/Source/WebCore/rendering/RenderRegion.cpp
@@ -48,7 +48,7 @@
namespace WebCore {
-RenderRegion::RenderRegion(Element& element, std::unique_ptr<RenderStyle> style, RenderFlowThread* flowThread)
+RenderRegion::RenderRegion(Element& element, RenderStyle&& style, RenderFlowThread* flowThread)
: RenderBlockFlow(element, WTFMove(style))
, m_flowThread(flowThread)
, m_parentNamedFlowThread(nullptr)
@@ -56,7 +56,7 @@
{
}
-RenderRegion::RenderRegion(Document& document, std::unique_ptr<RenderStyle> style, RenderFlowThread* flowThread)
+RenderRegion::RenderRegion(Document& document, RenderStyle&& style, RenderFlowThread* flowThread)
: RenderBlockFlow(document, WTFMove(style))
, m_flowThread(flowThread)
, m_parentNamedFlowThread(nullptr)
diff --git a/Source/WebCore/rendering/RenderRegion.h b/Source/WebCore/rendering/RenderRegion.h
index 9bcf5ca..9a44010 100644
--- a/Source/WebCore/rendering/RenderRegion.h
+++ b/Source/WebCore/rendering/RenderRegion.h
@@ -127,8 +127,8 @@
virtual void absoluteQuadsForBoxInRegion(Vector<FloatQuad>&, bool*, const RenderBox*, float, float) { }
protected:
- RenderRegion(Element&, std::unique_ptr<RenderStyle>, RenderFlowThread*);
- RenderRegion(Document&, std::unique_ptr<RenderStyle>, RenderFlowThread*);
+ RenderRegion(Element&, RenderStyle&&, RenderFlowThread*);
+ RenderRegion(Document&, RenderStyle&&, RenderFlowThread*);
void ensureOverflowForBox(const RenderBox*, RefPtr<RenderOverflow>&, bool);
diff --git a/Source/WebCore/rendering/RenderRegionSet.cpp b/Source/WebCore/rendering/RenderRegionSet.cpp
index e0d5f05..f7bc94c 100644
--- a/Source/WebCore/rendering/RenderRegionSet.cpp
+++ b/Source/WebCore/rendering/RenderRegionSet.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-RenderRegionSet::RenderRegionSet(Document& document, std::unique_ptr<RenderStyle> style, RenderFlowThread& flowThread)
+RenderRegionSet::RenderRegionSet(Document& document, RenderStyle&& style, RenderFlowThread& flowThread)
: RenderRegion(document, WTFMove(style), &flowThread)
{
}
diff --git a/Source/WebCore/rendering/RenderRegionSet.h b/Source/WebCore/rendering/RenderRegionSet.h
index 97e9b8d..c750fd1 100644
--- a/Source/WebCore/rendering/RenderRegionSet.h
+++ b/Source/WebCore/rendering/RenderRegionSet.h
@@ -50,7 +50,7 @@
void expandToEncompassFlowThreadContentsIfNeeded();
protected:
- RenderRegionSet(Document&, std::unique_ptr<RenderStyle>, RenderFlowThread&);
+ RenderRegionSet(Document&, RenderStyle&&, RenderFlowThread&);
private:
void installFlowThread() final;
diff --git a/Source/WebCore/rendering/RenderReplaced.cpp b/Source/WebCore/rendering/RenderReplaced.cpp
index f1d7cef..be26990 100644
--- a/Source/WebCore/rendering/RenderReplaced.cpp
+++ b/Source/WebCore/rendering/RenderReplaced.cpp
@@ -46,21 +46,21 @@
const int cDefaultWidth = 300;
const int cDefaultHeight = 150;
-RenderReplaced::RenderReplaced(Element& element, std::unique_ptr<RenderStyle> style)
+RenderReplaced::RenderReplaced(Element& element, RenderStyle&& style)
: RenderBox(element, WTFMove(style), RenderReplacedFlag)
, m_intrinsicSize(cDefaultWidth, cDefaultHeight)
{
setReplaced(true);
}
-RenderReplaced::RenderReplaced(Element& element, std::unique_ptr<RenderStyle> style, const LayoutSize& intrinsicSize)
+RenderReplaced::RenderReplaced(Element& element, RenderStyle&& style, const LayoutSize& intrinsicSize)
: RenderBox(element, WTFMove(style), RenderReplacedFlag)
, m_intrinsicSize(intrinsicSize)
{
setReplaced(true);
}
-RenderReplaced::RenderReplaced(Document& document, std::unique_ptr<RenderStyle> style, const LayoutSize& intrinsicSize)
+RenderReplaced::RenderReplaced(Document& document, RenderStyle&& style, const LayoutSize& intrinsicSize)
: RenderBox(document, WTFMove(style), RenderReplacedFlag)
, m_intrinsicSize(intrinsicSize)
{
diff --git a/Source/WebCore/rendering/RenderReplaced.h b/Source/WebCore/rendering/RenderReplaced.h
index 2023557..d6ff14f 100644
--- a/Source/WebCore/rendering/RenderReplaced.h
+++ b/Source/WebCore/rendering/RenderReplaced.h
@@ -39,9 +39,9 @@
bool hasReplacedLogicalHeight() const;
protected:
- RenderReplaced(Element&, std::unique_ptr<RenderStyle>);
- RenderReplaced(Element&, std::unique_ptr<RenderStyle>, const LayoutSize& intrinsicSize);
- RenderReplaced(Document&, std::unique_ptr<RenderStyle>, const LayoutSize& intrinsicSize);
+ RenderReplaced(Element&, RenderStyle&&);
+ RenderReplaced(Element&, RenderStyle&&, const LayoutSize& intrinsicSize);
+ RenderReplaced(Document&, RenderStyle&&, const LayoutSize& intrinsicSize);
void layout() override;
diff --git a/Source/WebCore/rendering/RenderReplica.cpp b/Source/WebCore/rendering/RenderReplica.cpp
index 7864c4f..6a4f56c 100644
--- a/Source/WebCore/rendering/RenderReplica.cpp
+++ b/Source/WebCore/rendering/RenderReplica.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-RenderReplica::RenderReplica(Document& document, std::unique_ptr<RenderStyle> style)
+RenderReplica::RenderReplica(Document& document, RenderStyle&& style)
: RenderBox(document, WTFMove(style), 0)
{
// This is a hack. Replicas are synthetic, and don't pick up the attributes of the
diff --git a/Source/WebCore/rendering/RenderReplica.h b/Source/WebCore/rendering/RenderReplica.h
index c3f3dd4..3df6963 100644
--- a/Source/WebCore/rendering/RenderReplica.h
+++ b/Source/WebCore/rendering/RenderReplica.h
@@ -35,7 +35,7 @@
class RenderReplica final : public RenderBox {
public:
- RenderReplica(Document&, std::unique_ptr<RenderStyle>);
+ RenderReplica(Document&, RenderStyle&&);
virtual ~RenderReplica();
const char* renderName() const override { return "RenderReplica"; }
diff --git a/Source/WebCore/rendering/RenderRuby.cpp b/Source/WebCore/rendering/RenderRuby.cpp
index 5cd325b..fea0f57 100644
--- a/Source/WebCore/rendering/RenderRuby.cpp
+++ b/Source/WebCore/rendering/RenderRuby.cpp
@@ -98,7 +98,7 @@
static RenderBlock* createAnonymousRubyInlineBlock(RenderObject& ruby)
{
- RenderBlock* newBlock = new RenderBlockFlow(ruby.document(), RenderStyle::createAnonymousStyleWithDisplay(&ruby.style(), INLINE_BLOCK));
+ RenderBlock* newBlock = new RenderBlockFlow(ruby.document(), RenderStyle::createAnonymousStyleWithDisplay(ruby.style(), INLINE_BLOCK));
newBlock->initializeStyle();
return newBlock;
}
@@ -122,7 +122,7 @@
//=== ruby as inline object ===
-RenderRubyAsInline::RenderRubyAsInline(Element& element, std::unique_ptr<RenderStyle> style)
+RenderRubyAsInline::RenderRubyAsInline(Element& element, RenderStyle&& style)
: RenderInline(element, WTFMove(style))
{
}
@@ -228,7 +228,7 @@
//=== ruby as block object ===
-RenderRubyAsBlock::RenderRubyAsBlock(Element& element, std::unique_ptr<RenderStyle> style)
+RenderRubyAsBlock::RenderRubyAsBlock(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderRuby.h b/Source/WebCore/rendering/RenderRuby.h
index fd558e2..4f92a0e 100644
--- a/Source/WebCore/rendering/RenderRuby.h
+++ b/Source/WebCore/rendering/RenderRuby.h
@@ -53,7 +53,7 @@
// <ruby> when used as 'display:inline'
class RenderRubyAsInline final : public RenderInline {
public:
- RenderRubyAsInline(Element&, std::unique_ptr<RenderStyle>);
+ RenderRubyAsInline(Element&, RenderStyle&&);
virtual ~RenderRubyAsInline();
void addChild(RenderObject* child, RenderObject* beforeChild = 0) override;
@@ -71,7 +71,7 @@
// <ruby> when used as 'display:block' or 'display:inline-block'
class RenderRubyAsBlock final : public RenderBlockFlow {
public:
- RenderRubyAsBlock(Element&, std::unique_ptr<RenderStyle>);
+ RenderRubyAsBlock(Element&, RenderStyle&&);
virtual ~RenderRubyAsBlock();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderRubyBase.cpp b/Source/WebCore/rendering/RenderRubyBase.cpp
index ebccedc..d41d4d4 100644
--- a/Source/WebCore/rendering/RenderRubyBase.cpp
+++ b/Source/WebCore/rendering/RenderRubyBase.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderRubyBase::RenderRubyBase(Document& document, std::unique_ptr<RenderStyle> style)
+RenderRubyBase::RenderRubyBase(Document& document, RenderStyle&& style)
: RenderBlockFlow(document, WTFMove(style))
, m_initialOffset(0)
, m_isAfterExpansion(true)
diff --git a/Source/WebCore/rendering/RenderRubyBase.h b/Source/WebCore/rendering/RenderRubyBase.h
index e387166..da443b8 100644
--- a/Source/WebCore/rendering/RenderRubyBase.h
+++ b/Source/WebCore/rendering/RenderRubyBase.h
@@ -39,7 +39,7 @@
class RenderRubyBase final : public RenderBlockFlow {
public:
- RenderRubyBase(Document&, std::unique_ptr<RenderStyle>);
+ RenderRubyBase(Document&, RenderStyle&&);
virtual ~RenderRubyBase();
const char* renderName() const override { return "RenderRubyBase (anonymous)"; }
diff --git a/Source/WebCore/rendering/RenderRubyRun.cpp b/Source/WebCore/rendering/RenderRubyRun.cpp
index c03a281..1d5078a 100644
--- a/Source/WebCore/rendering/RenderRubyRun.cpp
+++ b/Source/WebCore/rendering/RenderRubyRun.cpp
@@ -44,7 +44,7 @@
using namespace std;
-RenderRubyRun::RenderRubyRun(Document& document, std::unique_ptr<RenderStyle> style)
+RenderRubyRun::RenderRubyRun(Document& document, RenderStyle&& style)
: RenderBlockFlow(document, WTFMove(style))
, m_lastCharacter(0)
, m_secondToLastCharacter(0)
@@ -203,8 +203,8 @@
RenderRubyBase* RenderRubyRun::createRubyBase() const
{
- auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), BLOCK);
- newStyle->setTextAlign(CENTER); // FIXME: use WEBKIT_CENTER?
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), BLOCK);
+ newStyle.setTextAlign(CENTER); // FIXME: use WEBKIT_CENTER?
auto renderer = new RenderRubyBase(document(), WTFMove(newStyle));
renderer->initializeStyle();
return renderer;
@@ -213,7 +213,7 @@
RenderRubyRun* RenderRubyRun::staticCreateRubyRun(const RenderObject* parentRuby)
{
ASSERT(isRuby(parentRuby));
- auto renderer = new RenderRubyRun(parentRuby->document(), RenderStyle::createAnonymousStyleWithDisplay(&parentRuby->style(), INLINE_BLOCK));
+ auto renderer = new RenderRubyRun(parentRuby->document(), RenderStyle::createAnonymousStyleWithDisplay(parentRuby->style(), INLINE_BLOCK));
renderer->initializeStyle();
return renderer;
}
diff --git a/Source/WebCore/rendering/RenderRubyRun.h b/Source/WebCore/rendering/RenderRubyRun.h
index a00d5d2..b62d2a0 100644
--- a/Source/WebCore/rendering/RenderRubyRun.h
+++ b/Source/WebCore/rendering/RenderRubyRun.h
@@ -43,7 +43,7 @@
class RenderRubyRun final : public RenderBlockFlow {
public:
- RenderRubyRun(Document&, std::unique_ptr<RenderStyle>);
+ RenderRubyRun(Document&, RenderStyle&&);
virtual ~RenderRubyRun();
bool hasRubyText() const;
diff --git a/Source/WebCore/rendering/RenderRubyText.cpp b/Source/WebCore/rendering/RenderRubyText.cpp
index 0c4c498..2fc437e 100644
--- a/Source/WebCore/rendering/RenderRubyText.cpp
+++ b/Source/WebCore/rendering/RenderRubyText.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderRubyText::RenderRubyText(Element& element, std::unique_ptr<RenderStyle> style)
+RenderRubyText::RenderRubyText(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderRubyText.h b/Source/WebCore/rendering/RenderRubyText.h
index 9d5551d..cf4d61d 100644
--- a/Source/WebCore/rendering/RenderRubyText.h
+++ b/Source/WebCore/rendering/RenderRubyText.h
@@ -37,7 +37,7 @@
class RenderRubyText final : public RenderBlockFlow {
public:
- RenderRubyText(Element&, std::unique_ptr<RenderStyle>);
+ RenderRubyText(Element&, RenderStyle&&);
virtual ~RenderRubyText();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderScrollbar.cpp b/Source/WebCore/rendering/RenderScrollbar.cpp
index 62468b1..f5108d4 100644
--- a/Source/WebCore/rendering/RenderScrollbar.cpp
+++ b/Source/WebCore/rendering/RenderScrollbar.cpp
@@ -245,9 +245,9 @@
}
if (auto& partRendererSlot = m_parts.add(partType, nullptr).iterator->value)
- partRendererSlot->setStyle(WTFMove(partStyle));
+ partRendererSlot->setStyle(WTFMove(*partStyle));
else {
- partRendererSlot = createRenderer<RenderScrollbarPart>(owningRenderer()->document(), WTFMove(partStyle), this, partType);
+ partRendererSlot = createRenderer<RenderScrollbarPart>(owningRenderer()->document(), WTFMove(*partStyle), this, partType);
partRendererSlot->initializeStyle();
}
}
diff --git a/Source/WebCore/rendering/RenderScrollbarPart.cpp b/Source/WebCore/rendering/RenderScrollbarPart.cpp
index 302dbfe..73618ff 100644
--- a/Source/WebCore/rendering/RenderScrollbarPart.cpp
+++ b/Source/WebCore/rendering/RenderScrollbarPart.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-RenderScrollbarPart::RenderScrollbarPart(Document& document, std::unique_ptr<RenderStyle> style, RenderScrollbar* scrollbar, ScrollbarPart part)
+RenderScrollbarPart::RenderScrollbarPart(Document& document, RenderStyle&& style, RenderScrollbar* scrollbar, ScrollbarPart part)
: RenderBlock(document, WTFMove(style), 0)
, m_scrollbar(scrollbar)
, m_part(part)
diff --git a/Source/WebCore/rendering/RenderScrollbarPart.h b/Source/WebCore/rendering/RenderScrollbarPart.h
index 8dcc850..309127a 100644
--- a/Source/WebCore/rendering/RenderScrollbarPart.h
+++ b/Source/WebCore/rendering/RenderScrollbarPart.h
@@ -35,7 +35,7 @@
class RenderScrollbarPart final : public RenderBlock {
public:
- RenderScrollbarPart(Document&, std::unique_ptr<RenderStyle>, RenderScrollbar* = nullptr, ScrollbarPart = NoPart);
+ RenderScrollbarPart(Document&, RenderStyle&&, RenderScrollbar* = nullptr, ScrollbarPart = NoPart);
virtual ~RenderScrollbarPart();
diff --git a/Source/WebCore/rendering/RenderSearchField.cpp b/Source/WebCore/rendering/RenderSearchField.cpp
index 5984a31..3f5d03d 100644
--- a/Source/WebCore/rendering/RenderSearchField.cpp
+++ b/Source/WebCore/rendering/RenderSearchField.cpp
@@ -50,7 +50,7 @@
using namespace HTMLNames;
-RenderSearchField::RenderSearchField(HTMLInputElement& element, std::unique_ptr<RenderStyle> style)
+RenderSearchField::RenderSearchField(HTMLInputElement& element, RenderStyle&& style)
: RenderTextControlSingleLine(element, WTFMove(style))
, m_searchPopupIsVisible(false)
, m_searchPopup(0)
@@ -178,8 +178,8 @@
if (curStyle.visibility() == buttonVisibility)
return;
- auto cancelButtonStyle = RenderStyle::clone(&curStyle);
- cancelButtonStyle->setVisibility(buttonVisibility);
+ auto cancelButtonStyle = RenderStyle::clone(curStyle);
+ cancelButtonStyle.setVisibility(buttonVisibility);
cancelButtonRenderer->setStyle(WTFMove(cancelButtonStyle));
}
diff --git a/Source/WebCore/rendering/RenderSearchField.h b/Source/WebCore/rendering/RenderSearchField.h
index 60b3ae1..d229819 100644
--- a/Source/WebCore/rendering/RenderSearchField.h
+++ b/Source/WebCore/rendering/RenderSearchField.h
@@ -33,7 +33,7 @@
class RenderSearchField final : public RenderTextControlSingleLine, private PopupMenuClient {
public:
- RenderSearchField(HTMLInputElement&, std::unique_ptr<RenderStyle>);
+ RenderSearchField(HTMLInputElement&, RenderStyle&&);
virtual ~RenderSearchField();
void updateCancelButtonVisibility() const;
diff --git a/Source/WebCore/rendering/RenderSlider.cpp b/Source/WebCore/rendering/RenderSlider.cpp
index 3fb1539..a7a5d12 100644
--- a/Source/WebCore/rendering/RenderSlider.cpp
+++ b/Source/WebCore/rendering/RenderSlider.cpp
@@ -47,7 +47,7 @@
const int RenderSlider::defaultTrackLength = 129;
-RenderSlider::RenderSlider(HTMLInputElement& element, std::unique_ptr<RenderStyle> style)
+RenderSlider::RenderSlider(HTMLInputElement& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
{
// We assume RenderSlider works only with <input type=range>.
diff --git a/Source/WebCore/rendering/RenderSlider.h b/Source/WebCore/rendering/RenderSlider.h
index fc1712d..eac48ac 100644
--- a/Source/WebCore/rendering/RenderSlider.h
+++ b/Source/WebCore/rendering/RenderSlider.h
@@ -33,7 +33,7 @@
public:
static const int defaultTrackLength;
- RenderSlider(HTMLInputElement&, std::unique_ptr<RenderStyle>);
+ RenderSlider(HTMLInputElement&, RenderStyle&&);
virtual ~RenderSlider();
HTMLInputElement& element() const;
diff --git a/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp b/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp
index 9c14102..c75e310 100644
--- a/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp
+++ b/Source/WebCore/rendering/RenderSnapshottedPlugIn.cpp
@@ -48,7 +48,7 @@
namespace WebCore {
-RenderSnapshottedPlugIn::RenderSnapshottedPlugIn(HTMLPlugInImageElement& element, std::unique_ptr<RenderStyle> style)
+RenderSnapshottedPlugIn::RenderSnapshottedPlugIn(HTMLPlugInImageElement& element, RenderStyle&& style)
: RenderEmbeddedObject(element, WTFMove(style))
, m_snapshotResource(std::make_unique<RenderImageResource>())
, m_isPotentialMouseActivation(false)
diff --git a/Source/WebCore/rendering/RenderSnapshottedPlugIn.h b/Source/WebCore/rendering/RenderSnapshottedPlugIn.h
index e6c6535..d0903d2 100644
--- a/Source/WebCore/rendering/RenderSnapshottedPlugIn.h
+++ b/Source/WebCore/rendering/RenderSnapshottedPlugIn.h
@@ -36,7 +36,7 @@
class RenderSnapshottedPlugIn final : public RenderEmbeddedObject {
public:
- RenderSnapshottedPlugIn(HTMLPlugInImageElement&, std::unique_ptr<RenderStyle>);
+ RenderSnapshottedPlugIn(HTMLPlugInImageElement&, RenderStyle&&);
virtual ~RenderSnapshottedPlugIn();
HTMLPlugInImageElement& plugInImageElement() const;
diff --git a/Source/WebCore/rendering/RenderTable.cpp b/Source/WebCore/rendering/RenderTable.cpp
index c62d6d8..4b33f0cc 100644
--- a/Source/WebCore/rendering/RenderTable.cpp
+++ b/Source/WebCore/rendering/RenderTable.cpp
@@ -50,7 +50,7 @@
using namespace HTMLNames;
-RenderTable::RenderTable(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTable::RenderTable(Element& element, RenderStyle&& style)
: RenderBlock(element, WTFMove(style), 0)
, m_head(nullptr)
, m_foot(nullptr)
@@ -72,7 +72,7 @@
m_columnPos.fill(0, 1);
}
-RenderTable::RenderTable(Document& document, std::unique_ptr<RenderStyle> style)
+RenderTable::RenderTable(Document& document, RenderStyle&& style)
: RenderBlock(document, WTFMove(style), 0)
, m_head(nullptr)
, m_foot(nullptr)
@@ -1549,7 +1549,7 @@
RenderTable* RenderTable::createAnonymousWithParentRenderer(const RenderObject* parent)
{
- auto table = new RenderTable(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), parent->style().display() == INLINE ? INLINE_TABLE : TABLE));
+ auto table = new RenderTable(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), parent->style().display() == INLINE ? INLINE_TABLE : TABLE));
table->initializeStyle();
return table;
}
diff --git a/Source/WebCore/rendering/RenderTable.h b/Source/WebCore/rendering/RenderTable.h
index ebd18c4..5cb34f9 100644
--- a/Source/WebCore/rendering/RenderTable.h
+++ b/Source/WebCore/rendering/RenderTable.h
@@ -44,8 +44,8 @@
class RenderTable : public RenderBlock {
public:
- RenderTable(Element&, std::unique_ptr<RenderStyle>);
- RenderTable(Document&, std::unique_ptr<RenderStyle>);
+ RenderTable(Element&, RenderStyle&&);
+ RenderTable(Document&, RenderStyle&&);
virtual ~RenderTable();
// Per CSS 3 writing-mode: "The first and second values of the 'border-spacing' property represent spacing between columns
diff --git a/Source/WebCore/rendering/RenderTableCaption.cpp b/Source/WebCore/rendering/RenderTableCaption.cpp
index 1e2c6be..90961fe 100644
--- a/Source/WebCore/rendering/RenderTableCaption.cpp
+++ b/Source/WebCore/rendering/RenderTableCaption.cpp
@@ -24,7 +24,7 @@
namespace WebCore {
-RenderTableCaption::RenderTableCaption(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTableCaption::RenderTableCaption(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderTableCaption.h b/Source/WebCore/rendering/RenderTableCaption.h
index cb1eb72..ee68f1a 100644
--- a/Source/WebCore/rendering/RenderTableCaption.h
+++ b/Source/WebCore/rendering/RenderTableCaption.h
@@ -28,7 +28,7 @@
class RenderTableCaption final : public RenderBlockFlow {
public:
- RenderTableCaption(Element&, std::unique_ptr<RenderStyle>);
+ RenderTableCaption(Element&, RenderStyle&&);
virtual ~RenderTableCaption();
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/RenderTableCell.cpp b/Source/WebCore/rendering/RenderTableCell.cpp
index 676be07..00d78c0 100644
--- a/Source/WebCore/rendering/RenderTableCell.cpp
+++ b/Source/WebCore/rendering/RenderTableCell.cpp
@@ -54,7 +54,7 @@
COMPILE_ASSERT(sizeof(RenderTableCell) == sizeof(SameSizeAsRenderTableCell), RenderTableCell_should_stay_small);
COMPILE_ASSERT(sizeof(CollapsedBorderValue) == 12, CollapsedBorderValue_should_stay_small);
-RenderTableCell::RenderTableCell(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTableCell::RenderTableCell(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
, m_column(unsetColumnIndex)
, m_cellWidthChanged(false)
@@ -70,7 +70,7 @@
updateColAndRowSpanFlags();
}
-RenderTableCell::RenderTableCell(Document& document, std::unique_ptr<RenderStyle> style)
+RenderTableCell::RenderTableCell(Document& document, RenderStyle&& style)
: RenderBlockFlow(document, WTFMove(style))
, m_column(unsetColumnIndex)
, m_cellWidthChanged(false)
@@ -1344,7 +1344,7 @@
RenderTableCell* RenderTableCell::createAnonymousWithParentRenderer(const RenderObject* parent)
{
- auto cell = new RenderTableCell(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), TABLE_CELL));
+ auto cell = new RenderTableCell(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_CELL));
cell->initializeStyle();
return cell;
}
diff --git a/Source/WebCore/rendering/RenderTableCell.h b/Source/WebCore/rendering/RenderTableCell.h
index cce13bd..d0b3b4f 100644
--- a/Source/WebCore/rendering/RenderTableCell.h
+++ b/Source/WebCore/rendering/RenderTableCell.h
@@ -39,8 +39,8 @@
class RenderTableCell final : public RenderBlockFlow {
public:
- RenderTableCell(Element&, std::unique_ptr<RenderStyle>);
- RenderTableCell(Document&, std::unique_ptr<RenderStyle>);
+ RenderTableCell(Element&, RenderStyle&&);
+ RenderTableCell(Document&, RenderStyle&&);
unsigned colSpan() const;
unsigned rowSpan() const;
diff --git a/Source/WebCore/rendering/RenderTableCol.cpp b/Source/WebCore/rendering/RenderTableCol.cpp
index 9d98e8a..698ec19 100644
--- a/Source/WebCore/rendering/RenderTableCol.cpp
+++ b/Source/WebCore/rendering/RenderTableCol.cpp
@@ -37,7 +37,7 @@
using namespace HTMLNames;
-RenderTableCol::RenderTableCol(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTableCol::RenderTableCol(Element& element, RenderStyle&& style)
: RenderBox(element, WTFMove(style), 0)
{
// init RenderObject attributes
diff --git a/Source/WebCore/rendering/RenderTableCol.h b/Source/WebCore/rendering/RenderTableCol.h
index 0edba9b3..ae19e15 100644
--- a/Source/WebCore/rendering/RenderTableCol.h
+++ b/Source/WebCore/rendering/RenderTableCol.h
@@ -35,7 +35,7 @@
class RenderTableCol final : public RenderBox {
public:
- RenderTableCol(Element&, std::unique_ptr<RenderStyle>);
+ RenderTableCol(Element&, RenderStyle&&);
Element& element() const { return downcast<Element>(nodeForNonAnonymous()); }
void clearPreferredLogicalWidthsDirtyBits();
diff --git a/Source/WebCore/rendering/RenderTableRow.cpp b/Source/WebCore/rendering/RenderTableRow.cpp
index 9d26c6f..d07c230 100644
--- a/Source/WebCore/rendering/RenderTableRow.cpp
+++ b/Source/WebCore/rendering/RenderTableRow.cpp
@@ -38,14 +38,14 @@
using namespace HTMLNames;
-RenderTableRow::RenderTableRow(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTableRow::RenderTableRow(Element& element, RenderStyle&& style)
: RenderBox(element, WTFMove(style), 0)
, m_rowIndex(unsetRowIndex)
{
setInline(false);
}
-RenderTableRow::RenderTableRow(Document& document, std::unique_ptr<RenderStyle> style)
+RenderTableRow::RenderTableRow(Document& document, RenderStyle&& style)
: RenderBox(document, WTFMove(style), 0)
, m_rowIndex(unsetRowIndex)
{
@@ -262,7 +262,7 @@
RenderTableRow* RenderTableRow::createAnonymousWithParentRenderer(const RenderObject* parent)
{
- auto newRow = new RenderTableRow(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), TABLE_ROW));
+ auto newRow = new RenderTableRow(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_ROW));
newRow->initializeStyle();
return newRow;
}
diff --git a/Source/WebCore/rendering/RenderTableRow.h b/Source/WebCore/rendering/RenderTableRow.h
index 95b66f32..16ce1b4 100644
--- a/Source/WebCore/rendering/RenderTableRow.h
+++ b/Source/WebCore/rendering/RenderTableRow.h
@@ -34,8 +34,8 @@
class RenderTableRow final : public RenderBox {
public:
- RenderTableRow(Element&, std::unique_ptr<RenderStyle>);
- RenderTableRow(Document&, std::unique_ptr<RenderStyle>);
+ RenderTableRow(Element&, RenderStyle&&);
+ RenderTableRow(Document&, RenderStyle&&);
RenderTableRow* nextRow() const;
RenderTableRow* previousRow() const;
diff --git a/Source/WebCore/rendering/RenderTableSection.cpp b/Source/WebCore/rendering/RenderTableSection.cpp
index d6fa573..7b84136 100644
--- a/Source/WebCore/rendering/RenderTableSection.cpp
+++ b/Source/WebCore/rendering/RenderTableSection.cpp
@@ -82,13 +82,13 @@
}
}
-RenderTableSection::RenderTableSection(Element& element, std::unique_ptr<RenderStyle> style)
+RenderTableSection::RenderTableSection(Element& element, RenderStyle&& style)
: RenderBox(element, WTFMove(style), 0)
{
setInline(false);
}
-RenderTableSection::RenderTableSection(Document& document, std::unique_ptr<RenderStyle> style)
+RenderTableSection::RenderTableSection(Document& document, RenderStyle&& style)
: RenderBox(document, WTFMove(style), 0)
{
setInline(false);
@@ -1578,7 +1578,7 @@
RenderTableSection* RenderTableSection::createAnonymousWithParentRenderer(const RenderObject* parent)
{
- auto section = new RenderTableSection(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(&parent->style(), TABLE_ROW_GROUP));
+ auto section = new RenderTableSection(parent->document(), RenderStyle::createAnonymousStyleWithDisplay(parent->style(), TABLE_ROW_GROUP));
section->initializeStyle();
return section;
}
diff --git a/Source/WebCore/rendering/RenderTableSection.h b/Source/WebCore/rendering/RenderTableSection.h
index be24ba6..fe48e2d 100644
--- a/Source/WebCore/rendering/RenderTableSection.h
+++ b/Source/WebCore/rendering/RenderTableSection.h
@@ -55,8 +55,8 @@
class RenderTableSection final : public RenderBox {
public:
- RenderTableSection(Element&, std::unique_ptr<RenderStyle>);
- RenderTableSection(Document&, std::unique_ptr<RenderStyle>);
+ RenderTableSection(Element&, RenderStyle&&);
+ RenderTableSection(Document&, RenderStyle&&);
virtual ~RenderTableSection();
RenderTableRow* firstRow() const;
diff --git a/Source/WebCore/rendering/RenderTextControl.cpp b/Source/WebCore/rendering/RenderTextControl.cpp
index 39e746d..1994e3d 100644
--- a/Source/WebCore/rendering/RenderTextControl.cpp
+++ b/Source/WebCore/rendering/RenderTextControl.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderTextControl::RenderTextControl(HTMLTextFormControlElement& element, std::unique_ptr<RenderStyle> style)
+RenderTextControl::RenderTextControl(HTMLTextFormControlElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderTextControl.h b/Source/WebCore/rendering/RenderTextControl.h
index ec85d57..cd2a91e 100644
--- a/Source/WebCore/rendering/RenderTextControl.h
+++ b/Source/WebCore/rendering/RenderTextControl.h
@@ -44,7 +44,7 @@
#endif
protected:
- RenderTextControl(HTMLTextFormControlElement&, std::unique_ptr<RenderStyle>);
+ RenderTextControl(HTMLTextFormControlElement&, RenderStyle&&);
// This convenience function should not be made public because innerTextElement may outlive the render tree.
TextControlInnerTextElement* innerTextElement() const;
@@ -91,7 +91,7 @@
// anymore.
class RenderTextControlInnerContainer final : public RenderFlexibleBox {
public:
- explicit RenderTextControlInnerContainer(Element& element, std::unique_ptr<RenderStyle> style)
+ explicit RenderTextControlInnerContainer(Element& element, RenderStyle&& style)
: RenderFlexibleBox(element, WTFMove(style))
{ }
virtual ~RenderTextControlInnerContainer() { }
diff --git a/Source/WebCore/rendering/RenderTextControlMultiLine.cpp b/Source/WebCore/rendering/RenderTextControlMultiLine.cpp
index 80c0046..98b5ef8 100644
--- a/Source/WebCore/rendering/RenderTextControlMultiLine.cpp
+++ b/Source/WebCore/rendering/RenderTextControlMultiLine.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-RenderTextControlMultiLine::RenderTextControlMultiLine(HTMLTextAreaElement& element, std::unique_ptr<RenderStyle> style)
+RenderTextControlMultiLine::RenderTextControlMultiLine(HTMLTextAreaElement& element, RenderStyle&& style)
: RenderTextControl(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderTextControlMultiLine.h b/Source/WebCore/rendering/RenderTextControlMultiLine.h
index f35bcf2..dd49bcf 100644
--- a/Source/WebCore/rendering/RenderTextControlMultiLine.h
+++ b/Source/WebCore/rendering/RenderTextControlMultiLine.h
@@ -30,7 +30,7 @@
class RenderTextControlMultiLine final : public RenderTextControl {
public:
- RenderTextControlMultiLine(HTMLTextAreaElement&, std::unique_ptr<RenderStyle>);
+ RenderTextControlMultiLine(HTMLTextAreaElement&, RenderStyle&&);
virtual ~RenderTextControlMultiLine();
HTMLTextAreaElement& textAreaElement() const;
diff --git a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
index 9ec1458..679198d 100644
--- a/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
+++ b/Source/WebCore/rendering/RenderTextControlSingleLine.cpp
@@ -53,7 +53,7 @@
using namespace HTMLNames;
-RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement& element, std::unique_ptr<RenderStyle> style)
+RenderTextControlSingleLine::RenderTextControlSingleLine(HTMLInputElement& element, RenderStyle&& style)
: RenderTextControl(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderTextControlSingleLine.h b/Source/WebCore/rendering/RenderTextControlSingleLine.h
index f6315ca..edbbdd0 100644
--- a/Source/WebCore/rendering/RenderTextControlSingleLine.h
+++ b/Source/WebCore/rendering/RenderTextControlSingleLine.h
@@ -32,7 +32,7 @@
class RenderTextControlSingleLine : public RenderTextControl {
public:
- RenderTextControlSingleLine(HTMLInputElement&, std::unique_ptr<RenderStyle>);
+ RenderTextControlSingleLine(HTMLInputElement&, RenderStyle&&);
virtual ~RenderTextControlSingleLine();
protected:
@@ -90,7 +90,7 @@
class RenderTextControlInnerBlock final : public RenderBlockFlow {
public:
- RenderTextControlInnerBlock(Element& element, std::unique_ptr<RenderStyle> style)
+ RenderTextControlInnerBlock(Element& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/RenderVTTCue.cpp b/Source/WebCore/rendering/RenderVTTCue.cpp
index b22de10..cae788cb 100644
--- a/Source/WebCore/rendering/RenderVTTCue.cpp
+++ b/Source/WebCore/rendering/RenderVTTCue.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderVTTCue::RenderVTTCue(VTTCueBox& element, std::unique_ptr<RenderStyle> style)
+RenderVTTCue::RenderVTTCue(VTTCueBox& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
, m_cue(element.getCue())
{
diff --git a/Source/WebCore/rendering/RenderVTTCue.h b/Source/WebCore/rendering/RenderVTTCue.h
index 35b64ba..c5ebbeb 100644
--- a/Source/WebCore/rendering/RenderVTTCue.h
+++ b/Source/WebCore/rendering/RenderVTTCue.h
@@ -40,7 +40,7 @@
class RenderVTTCue final : public RenderBlockFlow {
public:
- RenderVTTCue(VTTCueBox&, std::unique_ptr<RenderStyle>);
+ RenderVTTCue(VTTCueBox&, RenderStyle&&);
private:
void layout() override;
diff --git a/Source/WebCore/rendering/RenderVideo.cpp b/Source/WebCore/rendering/RenderVideo.cpp
index 5f814cb..0edef5b 100644
--- a/Source/WebCore/rendering/RenderVideo.cpp
+++ b/Source/WebCore/rendering/RenderVideo.cpp
@@ -48,7 +48,7 @@
using namespace HTMLNames;
-RenderVideo::RenderVideo(HTMLVideoElement& element, std::unique_ptr<RenderStyle> style)
+RenderVideo::RenderVideo(HTMLVideoElement& element, RenderStyle&& style)
: RenderMedia(element, WTFMove(style))
{
setIntrinsicSize(calculateIntrinsicSize());
diff --git a/Source/WebCore/rendering/RenderVideo.h b/Source/WebCore/rendering/RenderVideo.h
index 0ef0271..5b304ae 100644
--- a/Source/WebCore/rendering/RenderVideo.h
+++ b/Source/WebCore/rendering/RenderVideo.h
@@ -36,7 +36,7 @@
class RenderVideo final : public RenderMedia {
public:
- RenderVideo(HTMLVideoElement&, std::unique_ptr<RenderStyle>);
+ RenderVideo(HTMLVideoElement&, RenderStyle&&);
virtual ~RenderVideo();
HTMLVideoElement& videoElement() const;
diff --git a/Source/WebCore/rendering/RenderView.cpp b/Source/WebCore/rendering/RenderView.cpp
index 4747d39..021e310 100644
--- a/Source/WebCore/rendering/RenderView.cpp
+++ b/Source/WebCore/rendering/RenderView.cpp
@@ -115,7 +115,7 @@
Vector<RenderMultiColumnSpannerPlaceholder*> m_spannerStack;
};
-RenderView::RenderView(Document& document, std::unique_ptr<RenderStyle> style)
+RenderView::RenderView(Document& document, RenderStyle&& style)
: RenderBlockFlow(document, WTFMove(style))
, m_frameView(*document.view())
, m_selectionUnsplitStart(nullptr)
diff --git a/Source/WebCore/rendering/RenderView.h b/Source/WebCore/rendering/RenderView.h
index de00b18..4dad8fc 100644
--- a/Source/WebCore/rendering/RenderView.h
+++ b/Source/WebCore/rendering/RenderView.h
@@ -44,7 +44,7 @@
class RenderView final : public RenderBlockFlow, public SelectionSubtreeRoot {
public:
- RenderView(Document&, std::unique_ptr<RenderStyle>);
+ RenderView(Document&, RenderStyle&&);
virtual ~RenderView();
WEBCORE_EXPORT bool hitTest(const HitTestRequest&, HitTestResult&);
diff --git a/Source/WebCore/rendering/RenderWidget.cpp b/Source/WebCore/rendering/RenderWidget.cpp
index b95a9b0..1698f23 100644
--- a/Source/WebCore/rendering/RenderWidget.cpp
+++ b/Source/WebCore/rendering/RenderWidget.cpp
@@ -80,7 +80,7 @@
WidgetHierarchyUpdatesSuspensionScope::scheduleWidgetToMove(child, parent);
}
-RenderWidget::RenderWidget(HTMLFrameOwnerElement& element, std::unique_ptr<RenderStyle> style)
+RenderWidget::RenderWidget(HTMLFrameOwnerElement& element, RenderStyle&& style)
: RenderReplaced(element, WTFMove(style))
, m_weakPtrFactory(this)
{
diff --git a/Source/WebCore/rendering/RenderWidget.h b/Source/WebCore/rendering/RenderWidget.h
index ed5626a..e40d34a 100644
--- a/Source/WebCore/rendering/RenderWidget.h
+++ b/Source/WebCore/rendering/RenderWidget.h
@@ -79,7 +79,7 @@
void deref();
protected:
- RenderWidget(HTMLFrameOwnerElement&, std::unique_ptr<RenderStyle>);
+ RenderWidget(HTMLFrameOwnerElement&, RenderStyle&&);
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) final;
void layout() override;
diff --git a/Source/WebCore/rendering/TextAutoSizing.cpp b/Source/WebCore/rendering/TextAutoSizing.cpp
index c6957a3..a74f498 100644
--- a/Source/WebCore/rendering/TextAutoSizing.cpp
+++ b/Source/WebCore/rendering/TextAutoSizing.cpp
@@ -36,13 +36,13 @@
namespace WebCore {
-static std::unique_ptr<RenderStyle> cloneRenderStyleWithState(const RenderStyle& currentStyle)
+static RenderStyle cloneRenderStyleWithState(const RenderStyle& currentStyle)
{
- auto newStyle = RenderStyle::clone(¤tStyle);
+ auto newStyle = RenderStyle::clone(currentStyle);
if (currentStyle.lastChildState())
- newStyle->setLastChildState();
+ newStyle.setLastChildState();
if (currentStyle.firstChildState())
- newStyle->setFirstChildState();
+ newStyle.setFirstChildState();
return newStyle;
}
@@ -52,7 +52,7 @@
}
TextAutoSizingKey::TextAutoSizingKey(RenderStyle* style)
- : m_style(RenderStyle::clone(style))
+ : m_style(style ? RenderStyle::clonePtr(*style) : nullptr)
{
}
@@ -118,10 +118,10 @@
}
auto style = cloneRenderStyleWithState(text->style());
- auto fontDescription = style->fontDescription();
+ auto fontDescription = style.fontDescription();
fontDescription.setComputedSize(averageSize);
- style->setFontDescription(fontDescription);
- style->fontCascade().update(&autoSizingNode->document().fontSelector());
+ style.setFontDescription(fontDescription);
+ style.fontCascade().update(&autoSizingNode->document().fontSelector());
text->parent()->setStyle(WTFMove(style));
RenderElement* parentRenderer = text->parent();
@@ -132,8 +132,8 @@
RenderObject* listMarkerRenderer = parentRenderer->firstChild();
if (listMarkerRenderer->isListMarker()) {
auto style = cloneRenderStyleWithState(listMarkerRenderer->style());
- style->setFontDescription(fontDescription);
- style->fontCascade().update(&autoSizingNode->document().fontSelector());
+ style.setFontDescription(fontDescription);
+ style.fontCascade().update(&autoSizingNode->document().fontSelector());
downcast<RenderListMarker>(*listMarkerRenderer).setStyle(WTFMove(style));
}
@@ -150,10 +150,10 @@
int lineHeight = specifiedLineHeight * scaleChange;
if (!lineHeightLength.isFixed() || lineHeightLength.value() != lineHeight) {
auto newParentStyle = cloneRenderStyleWithState(parentStyle);
- newParentStyle->setLineHeight(Length(lineHeight, Fixed));
- newParentStyle->setSpecifiedLineHeight(lineHeightLength);
- newParentStyle->setFontDescription(fontDescription);
- newParentStyle->fontCascade().update(&autoSizingNode->document().fontSelector());
+ newParentStyle.setLineHeight(Length(lineHeight, Fixed));
+ newParentStyle.setSpecifiedLineHeight(lineHeightLength);
+ newParentStyle.setFontDescription(fontDescription);
+ newParentStyle.fontCascade().update(&autoSizingNode->document().fontSelector());
parentRenderer->setStyle(WTFMove(newParentStyle));
}
}
@@ -174,8 +174,8 @@
if (fontDescription.computedSize() != originalSize) {
fontDescription.setComputedSize(originalSize);
auto style = cloneRenderStyleWithState(text->style());
- style->setFontDescription(fontDescription);
- style->fontCascade().update(&autoSizingNode->document().fontSelector());
+ style.setFontDescription(fontDescription);
+ style.fontCascade().update(&autoSizingNode->document().fontSelector());
text->parent()->setStyle(WTFMove(style));
}
// Reset the line height of the parent.
@@ -190,9 +190,9 @@
Length originalLineHeight = parentStyle.specifiedLineHeight();
if (originalLineHeight != parentStyle.lineHeight()) {
auto newParentStyle = cloneRenderStyleWithState(parentStyle);
- newParentStyle->setLineHeight(originalLineHeight);
- newParentStyle->setFontDescription(fontDescription);
- newParentStyle->fontCascade().update(&autoSizingNode->document().fontSelector());
+ newParentStyle.setLineHeight(originalLineHeight);
+ newParentStyle.setFontDescription(fontDescription);
+ newParentStyle.fontCascade().update(&autoSizingNode->document().fontSelector());
parentRenderer->setStyle(WTFMove(newParentStyle));
}
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
index 5eb481f..dd8784b 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp
@@ -43,12 +43,12 @@
using namespace MathMLNames;
-RenderMathMLBlock::RenderMathMLBlock(Element& container, std::unique_ptr<RenderStyle> style)
+RenderMathMLBlock::RenderMathMLBlock(Element& container, RenderStyle&& style)
: RenderFlexibleBox(container, WTFMove(style))
{
}
-RenderMathMLBlock::RenderMathMLBlock(Document& document, std::unique_ptr<RenderStyle> style)
+RenderMathMLBlock::RenderMathMLBlock(Document& document, RenderStyle&& style)
: RenderFlexibleBox(document, WTFMove(style))
{
}
@@ -60,7 +60,7 @@
RenderPtr<RenderMathMLBlock> RenderMathMLBlock::createAnonymousMathMLBlock()
{
- RenderPtr<RenderMathMLBlock> newBlock = createRenderer<RenderMathMLBlock>(document(), RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX));
+ RenderPtr<RenderMathMLBlock> newBlock = createRenderer<RenderMathMLBlock>(document(), RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX));
newBlock->initializeStyle();
return newBlock;
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLBlock.h b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h
index 959f29f..499a944 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLBlock.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLBlock.h
@@ -41,8 +41,8 @@
class RenderMathMLBlock : public RenderFlexibleBox {
public:
- RenderMathMLBlock(Element&, std::unique_ptr<RenderStyle>);
- RenderMathMLBlock(Document&, std::unique_ptr<RenderStyle>);
+ RenderMathMLBlock(Element&, RenderStyle&&);
+ RenderMathMLBlock(Document&, RenderStyle&&);
bool isChildAllowed(const RenderObject&, const RenderStyle&) const override;
@@ -80,7 +80,7 @@
class RenderMathMLTable final : public RenderTable {
public:
- explicit RenderMathMLTable(Element& element, std::unique_ptr<RenderStyle> style)
+ explicit RenderMathMLTable(Element& element, RenderStyle&& style)
: RenderTable(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp b/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp
index f3264dc..3edce34 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFenced.cpp
@@ -43,7 +43,7 @@
static const char* gOpeningBraceChar = "(";
static const char* gClosingBraceChar = ")";
-RenderMathMLFenced::RenderMathMLFenced(MathMLInlineContainerElement& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLFenced::RenderMathMLFenced(MathMLInlineContainerElement& element, RenderStyle&& style)
: RenderMathMLRow(element, WTFMove(style))
, m_closeFenceRenderer(nullptr)
{
@@ -85,7 +85,7 @@
RenderPtr<RenderMathMLOperator> RenderMathMLFenced::createMathMLOperator(const String& operatorString, MathMLOperatorDictionary::Form form, MathMLOperatorDictionary::Flag flag)
{
- RenderPtr<RenderMathMLOperator> newOperator = createRenderer<RenderMathMLOperator>(document(), RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX), operatorString, form, flag);
+ RenderPtr<RenderMathMLOperator> newOperator = createRenderer<RenderMathMLOperator>(document(), RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX), operatorString, form, flag);
newOperator->initializeStyle();
return newOperator;
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFenced.h b/Source/WebCore/rendering/mathml/RenderMathMLFenced.h
index cf830ce..9ef28bf 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLFenced.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFenced.h
@@ -36,7 +36,7 @@
class RenderMathMLFenced final : public RenderMathMLRow {
public:
- RenderMathMLFenced(MathMLInlineContainerElement&, std::unique_ptr<RenderStyle>);
+ RenderMathMLFenced(MathMLInlineContainerElement&, RenderStyle&&);
MathMLInlineContainerElement& element() { return static_cast<MathMLInlineContainerElement&>(nodeForNonAnonymous()); }
private:
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
index 1cfd3c9..ee20d4b9 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.cpp
@@ -49,7 +49,7 @@
static const float gNumeratorGap = 0.2f;
static const float gDenominatorGap = 0.2f;
-RenderMathMLFraction::RenderMathMLFraction(MathMLInlineContainerElement& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLFraction::RenderMathMLFraction(MathMLInlineContainerElement& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
, m_defaultLineThickness(1)
, m_lineThickness(0)
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLFraction.h b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h
index 49d53ee..c1afc12 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLFraction.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLFraction.h
@@ -37,7 +37,7 @@
class RenderMathMLFraction final : public RenderMathMLBlock {
public:
- RenderMathMLFraction(MathMLInlineContainerElement&, std::unique_ptr<RenderStyle>);
+ RenderMathMLFraction(MathMLInlineContainerElement&, RenderStyle&&);
MathMLInlineContainerElement& element() { return static_cast<MathMLInlineContainerElement&>(nodeForNonAnonymous()); }
float relativeLineThickness() const { return m_defaultLineThickness ? m_lineThickness / m_defaultLineThickness : LayoutUnit(0); }
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp b/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp
index 594d52c..e92ca7f 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMath.cpp
@@ -35,7 +35,7 @@
using namespace MathMLNames;
-RenderMathMLMath::RenderMathMLMath(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLMath::RenderMathMLMath(Element& element, RenderStyle&& style)
: RenderMathMLRow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLMath.h b/Source/WebCore/rendering/mathml/RenderMathMLMath.h
index bab632c..6e17bfa 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLMath.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMath.h
@@ -34,7 +34,7 @@
class RenderMathMLMath final : public RenderMathMLRow {
public:
- RenderMathMLMath(Element&, std::unique_ptr<RenderStyle>);
+ RenderMathMLMath(Element&, RenderStyle&&);
private:
bool isRenderMathMLMath() const override { return true; }
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp
index b9044a2..8b62c75 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.cpp
@@ -42,7 +42,7 @@
// For now, we use a Bezier curve and this somewhat arbitrary value.
const unsigned short longDivLeftSpace = 10;
-RenderMathMLMenclose::RenderMathMLMenclose(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLMenclose::RenderMathMLMenclose(Element& element, RenderStyle&& style)
: RenderMathMLRow(element, WTFMove(style))
, m_ascent(0)
{
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.h b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.h
index fbf8710..0e1f1df 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLMenclose.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLMenclose.h
@@ -35,7 +35,7 @@
class RenderMathMLMenclose final: public RenderMathMLRow {
public:
- RenderMathMLMenclose(Element&, std::unique_ptr<RenderStyle>);
+ RenderMathMLMenclose(Element&, RenderStyle&&);
private:
const char* renderName() const final { return "RenderMathMLMenclose"; }
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp b/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
index 0c40555..4f8613b 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLOperator.cpp
@@ -72,7 +72,7 @@
{ 0x222b, 0x2320, 0x23ae, 0x2321, 0x0 } // integral sign
};
-RenderMathMLOperator::RenderMathMLOperator(MathMLElement& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLOperator::RenderMathMLOperator(MathMLElement& element, RenderStyle&& style)
: RenderMathMLToken(element, WTFMove(style))
, m_stretchHeightAboveBaseline(0)
, m_stretchDepthBelowBaseline(0)
@@ -82,7 +82,7 @@
updateTokenContent();
}
-RenderMathMLOperator::RenderMathMLOperator(Document& document, std::unique_ptr<RenderStyle> style, const String& operatorString, MathMLOperatorDictionary::Form form, unsigned short flags)
+RenderMathMLOperator::RenderMathMLOperator(Document& document, RenderStyle&& style, const String& operatorString, MathMLOperatorDictionary::Form form, unsigned short flags)
: RenderMathMLToken(document, WTFMove(style))
, m_stretchHeightAboveBaseline(0)
, m_stretchDepthBelowBaseline(0)
@@ -631,9 +631,9 @@
// FIXME: The spacing should be added to the whole embellished operator (https://bugs.webkit.org/show_bug.cgi?id=124831).
// FIXME: The spacing should only be added inside (perhaps inferred) mrow (http://www.w3.org/TR/MathML/chapter3.html#presm.opspacing).
const auto& wrapper = downcast<RenderElement>(firstChild());
- auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX);
- newStyle->setMarginStart(Length(m_leadingSpace, Fixed));
- newStyle->setMarginEnd(Length(m_trailingSpace, Fixed));
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX);
+ newStyle.setMarginStart(Length(m_leadingSpace, Fixed));
+ newStyle.setMarginEnd(Length(m_trailingSpace, Fixed));
wrapper->setStyle(WTFMove(newStyle));
wrapper->setNeedsLayoutAndPrefWidthsRecalc();
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLOperator.h b/Source/WebCore/rendering/mathml/RenderMathMLOperator.h
index 4249164..b43e427 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLOperator.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLOperator.h
@@ -39,8 +39,8 @@
class RenderMathMLOperator : public RenderMathMLToken {
public:
- RenderMathMLOperator(MathMLElement&, std::unique_ptr<RenderStyle>);
- RenderMathMLOperator(Document&, std::unique_ptr<RenderStyle>, const String& operatorString, MathMLOperatorDictionary::Form, unsigned short flags = 0);
+ RenderMathMLOperator(MathMLElement&, RenderStyle&&);
+ RenderMathMLOperator(Document&, RenderStyle&&, const String& operatorString, MathMLOperatorDictionary::Form, unsigned short flags = 0);
virtual void stretchTo(LayoutUnit heightAboveBaseline, LayoutUnit depthBelowBaseline);
void stretchTo(LayoutUnit width);
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp
index 7ed019d..9b21f36 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.cpp
@@ -56,7 +56,7 @@
// Radical thick line thickness (em)
const float gRadicalThickLineThicknessEms = 0.1f;
-RenderMathMLRadicalOperator::RenderMathMLRadicalOperator(Document& document, std::unique_ptr<RenderStyle> style)
+RenderMathMLRadicalOperator::RenderMathMLRadicalOperator(Document& document, RenderStyle&& style)
: RenderMathMLOperator(document, WTFMove(style), String(&gRadicalCharacter, 1), MathMLOperatorDictionary::Prefix)
{
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.h b/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.h
index b3e33fc..e217ce5 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRadicalOperator.h
@@ -35,7 +35,7 @@
class RenderMathMLRadicalOperator final : public RenderMathMLOperator {
public:
- RenderMathMLRadicalOperator(Document&, std::unique_ptr<RenderStyle>);
+ RenderMathMLRadicalOperator(Document&, RenderStyle&&);
void stretchTo(LayoutUnit heightAboveBaseline, LayoutUnit depthBelowBaseline) override;
void computePreferredLogicalWidths() override;
void computeLogicalHeight(LayoutUnit logicalHeight, LayoutUnit logicalTop, LogicalExtentComputedValues&) const override;
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
index 0176515..5a046a2 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRoot.cpp
@@ -55,7 +55,7 @@
// In order to accept invalid markup and to handle <mroot> and <msqrt> consistently, we will allow any number of children in the BaseWrapper of <mroot> too.
// We will allow the IndexWrapper to be empty and it will always contain the last child of the <mroot> if there are at least 2 elements.
-RenderMathMLRoot::RenderMathMLRoot(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLRoot::RenderMathMLRoot(Element& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
{
}
@@ -104,7 +104,7 @@
if (radical->isEmpty()) {
// We create the radical operator.
- RenderPtr<RenderMathMLRadicalOperator> radicalOperator = createRenderer<RenderMathMLRadicalOperator>(document(), RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX));
+ RenderPtr<RenderMathMLRadicalOperator> radicalOperator = createRenderer<RenderMathMLRadicalOperator>(document(), RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX));
radicalOperator->initializeStyle();
radical->addChild(radicalOperator.leakPtr());
}
@@ -220,26 +220,26 @@
// We set the style of the anonymous wrappers.
auto radical = radicalWrapper();
- auto radicalStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX);
- radicalStyle->setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
+ auto radicalStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX);
+ radicalStyle.setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
radical->setStyle(WTFMove(radicalStyle));
radical->setNeedsLayoutAndPrefWidthsRecalc();
auto base = baseWrapper();
- auto baseStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX);
- baseStyle->setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
- baseStyle->setAlignItemsPosition(ItemPositionBaseline);
+ auto baseStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX);
+ baseStyle.setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
+ baseStyle.setAlignItemsPosition(ItemPositionBaseline);
base->setStyle(WTFMove(baseStyle));
base->setNeedsLayoutAndPrefWidthsRecalc();
if (!isRenderMathMLSquareRoot()) {
// For mroot, we also set the style of the index wrapper.
auto index = indexWrapper();
- auto indexStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX);
- indexStyle->setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
- indexStyle->setMarginStart(Length(kernBeforeDegree, Fixed));
- indexStyle->setMarginEnd(Length(kernAfterDegree, Fixed));
- indexStyle->setAlignItemsPosition(ItemPositionBaseline);
+ auto indexStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX);
+ indexStyle.setMarginTop(Length(0, Fixed)); // This will be updated in RenderMathMLRoot::layout().
+ indexStyle.setMarginStart(Length(kernBeforeDegree, Fixed));
+ indexStyle.setMarginEnd(Length(kernAfterDegree, Fixed));
+ indexStyle.setAlignItemsPosition(ItemPositionBaseline);
index->setStyle(WTFMove(indexStyle));
index->setNeedsLayoutAndPrefWidthsRecalc();
}
@@ -337,7 +337,7 @@
RenderPtr<RenderMathMLRootWrapper> RenderMathMLRootWrapper::createAnonymousWrapper(RenderMathMLRoot* renderObject)
{
- RenderPtr<RenderMathMLRootWrapper> newBlock = createRenderer<RenderMathMLRootWrapper>(renderObject->document(), RenderStyle::createAnonymousStyleWithDisplay(&renderObject->style(), FLEX));
+ RenderPtr<RenderMathMLRootWrapper> newBlock = createRenderer<RenderMathMLRootWrapper>(renderObject->document(), RenderStyle::createAnonymousStyleWithDisplay(renderObject->style(), FLEX));
newBlock->initializeStyle();
return newBlock;
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRoot.h b/Source/WebCore/rendering/mathml/RenderMathMLRoot.h
index dc94048..0bab2c2 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRoot.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRoot.h
@@ -42,7 +42,7 @@
friend class RenderMathMLRootWrapper;
public:
- RenderMathMLRoot(Element&, std::unique_ptr<RenderStyle>);
+ RenderMathMLRoot(Element&, RenderStyle&&);
void addChild(RenderObject* newChild, RenderObject* beforeChild = 0) override;
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
@@ -78,7 +78,7 @@
friend class RenderMathMLRoot;
public:
- RenderMathMLRootWrapper(Document& document, std::unique_ptr<RenderStyle> style)
+ RenderMathMLRootWrapper(Document& document, RenderStyle&& style)
: RenderMathMLRow(document, WTFMove(style)) { }
private:
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
index a75628a..6d318cd 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRow.cpp
@@ -39,12 +39,12 @@
using namespace MathMLNames;
-RenderMathMLRow::RenderMathMLRow(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLRow::RenderMathMLRow(Element& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
{
}
-RenderMathMLRow::RenderMathMLRow(Document& document, std::unique_ptr<RenderStyle> style)
+RenderMathMLRow::RenderMathMLRow(Document& document, RenderStyle&& style)
: RenderMathMLBlock(document, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLRow.h b/Source/WebCore/rendering/mathml/RenderMathMLRow.h
index e241b96..8afe2da 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLRow.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLRow.h
@@ -37,8 +37,8 @@
class RenderMathMLRow : public RenderMathMLBlock {
public:
- RenderMathMLRow(Element&, std::unique_ptr<RenderStyle>);
- RenderMathMLRow(Document&, std::unique_ptr<RenderStyle>);
+ RenderMathMLRow(Element&, RenderStyle&&);
+ RenderMathMLRow(Document&, RenderStyle&&);
void updateOperatorProperties();
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp b/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp
index 696fdb9..0407f4c 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLScripts.cpp
@@ -43,7 +43,7 @@
return renderObject.node() && renderObject.node()->hasTagName(MathMLNames::mprescriptsTag);
}
-RenderMathMLScripts::RenderMathMLScripts(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLScripts::RenderMathMLScripts(Element& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
{
// Determine what kind of sub/sup expression we have by element name
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLScripts.h b/Source/WebCore/rendering/mathml/RenderMathMLScripts.h
index 80b9711..aaa94c7 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLScripts.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLScripts.h
@@ -36,7 +36,7 @@
// Render a base with scripts.
class RenderMathMLScripts final : public RenderMathMLBlock {
public:
- RenderMathMLScripts(Element&, std::unique_ptr<RenderStyle>);
+ RenderMathMLScripts(Element&, RenderStyle&&);
RenderMathMLOperator* unembellishedOperator() final;
Optional<int> firstLineBaseline() const final;
void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp b/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp
index f27a39b..ecb8cbf 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSpace.cpp
@@ -36,7 +36,7 @@
using namespace MathMLNames;
-RenderMathMLSpace::RenderMathMLSpace(MathMLTextElement& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLSpace::RenderMathMLSpace(MathMLTextElement& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
, m_width(0)
, m_height(0)
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLSpace.h b/Source/WebCore/rendering/mathml/RenderMathMLSpace.h
index 9f98e76..c309126 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLSpace.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSpace.h
@@ -35,7 +35,7 @@
class RenderMathMLSpace final : public RenderMathMLBlock {
public:
- RenderMathMLSpace(MathMLTextElement&, std::unique_ptr<RenderStyle>);
+ RenderMathMLSpace(MathMLTextElement&, RenderStyle&&);
MathMLTextElement& element() { return static_cast<MathMLTextElement&>(nodeForNonAnonymous()); }
private:
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp
index 85567f5..f4acbaf 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.cpp
@@ -34,7 +34,7 @@
namespace WebCore {
-RenderMathMLSquareRoot::RenderMathMLSquareRoot(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLSquareRoot::RenderMathMLSquareRoot(Element& element, RenderStyle&& style)
: RenderMathMLRoot(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h
index 1359cc7..d169242 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLSquareRoot.h
@@ -38,8 +38,7 @@
// Render sqrt(base), using radical notation.
class RenderMathMLSquareRoot final : public RenderMathMLRoot {
public:
- RenderMathMLSquareRoot(Element&, std::unique_ptr<RenderStyle>);
- static RenderPtr<RenderMathMLSquareRoot> createAnonymousWithParentRenderer(RenderMathMLMenclose&);
+ RenderMathMLSquareRoot(Element&, RenderStyle&&);
private:
bool isRenderMathMLSquareRoot() const override { return true; }
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp b/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp
index 4508327..5be01bd 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLToken.cpp
@@ -36,13 +36,13 @@
using namespace MathMLNames;
-RenderMathMLToken::RenderMathMLToken(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLToken::RenderMathMLToken(Element& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
, m_containsElement(false)
{
}
-RenderMathMLToken::RenderMathMLToken(Document& document, std::unique_ptr<RenderStyle> style)
+RenderMathMLToken::RenderMathMLToken(Document& document, RenderStyle&& style)
: RenderMathMLBlock(document, WTFMove(style))
, m_containsElement(false)
{
@@ -82,17 +82,17 @@
const auto& tokenElement = element();
const auto& wrapper = downcast<RenderElement>(firstChild());
- auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(&style(), FLEX);
+ auto newStyle = RenderStyle::createAnonymousStyleWithDisplay(style(), FLEX);
if (tokenElement.hasTagName(MathMLNames::miTag)) {
// This tries to emulate the default mathvariant value on <mi> using the CSS font-style property.
// FIXME: This should be revised when mathvariant is implemented (http://wkbug/85735) and when fonts with Mathematical Alphanumeric Symbols characters are more popular.
- auto fontDescription = newStyle->fontDescription();
- FontSelector* fontSelector = newStyle->fontCascade().fontSelector();
+ auto fontDescription = newStyle.fontDescription();
+ FontSelector* fontSelector = newStyle.fontCascade().fontSelector();
if (!m_containsElement && element().textContent().stripWhiteSpace().simplifyWhiteSpace().length() == 1 && !tokenElement.hasAttribute(mathvariantAttr))
fontDescription.setItalic(FontItalicOn);
- if (newStyle->setFontDescription(fontDescription))
- newStyle->fontCascade().update(fontSelector);
+ if (newStyle.setFontDescription(fontDescription))
+ newStyle.fontCascade().update(fontSelector);
}
wrapper->setStyle(WTFMove(newStyle));
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLToken.h b/Source/WebCore/rendering/mathml/RenderMathMLToken.h
index fe52583..ba912bb 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLToken.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLToken.h
@@ -36,8 +36,8 @@
class RenderMathMLToken : public RenderMathMLBlock {
public:
- RenderMathMLToken(Element&, std::unique_ptr<RenderStyle>);
- RenderMathMLToken(Document&, std::unique_ptr<RenderStyle>);
+ RenderMathMLToken(Element&, RenderStyle&&);
+ RenderMathMLToken(Document&, RenderStyle&&);
MathMLTextElement& element() { return static_cast<MathMLTextElement&>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp
index 600f4d2..a25e593 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp
+++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp
@@ -39,7 +39,7 @@
using namespace MathMLNames;
-RenderMathMLUnderOver::RenderMathMLUnderOver(Element& element, std::unique_ptr<RenderStyle> style)
+RenderMathMLUnderOver::RenderMathMLUnderOver(Element& element, RenderStyle&& style)
: RenderMathMLBlock(element, WTFMove(style))
{
// Determine what kind of under/over expression we have by element name
diff --git a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h
index f4d24ad..48d1d9f 100644
--- a/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h
+++ b/Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h
@@ -35,7 +35,7 @@
class RenderMathMLUnderOver final : public RenderMathMLBlock {
public:
- RenderMathMLUnderOver(Element&, std::unique_ptr<RenderStyle>);
+ RenderMathMLUnderOver(Element&, RenderStyle&&);
RenderMathMLOperator* unembellishedOperator() override;
diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp
index e4e2545..03d2152 100644
--- a/Source/WebCore/rendering/style/RenderStyle.cpp
+++ b/Source/WebCore/rendering/style/RenderStyle.cpp
@@ -86,46 +86,51 @@
COMPILE_ASSERT(sizeof(RenderStyle) == sizeof(SameSizeAsRenderStyle), RenderStyle_should_stay_small);
-inline RenderStyle& defaultStyle()
+RenderStyle& RenderStyle::defaultStyle()
{
- static RenderStyle& style = *RenderStyle::createDefaultStyle().release();
+ static RenderStyle& style = *new RenderStyle(CreateDefaultStyle);
return style;
}
-std::unique_ptr<RenderStyle> RenderStyle::create()
+RenderStyle RenderStyle::create()
{
- return clone(&defaultStyle());
+ return clone(defaultStyle());
}
-std::unique_ptr<RenderStyle> RenderStyle::createDefaultStyle()
+std::unique_ptr<RenderStyle> RenderStyle::createPtr()
{
- return std::unique_ptr<RenderStyle>(new RenderStyle(true));
+ return clonePtr(defaultStyle());
}
-std::unique_ptr<RenderStyle> RenderStyle::createAnonymousStyleWithDisplay(const RenderStyle* parentStyle, EDisplay display)
+RenderStyle RenderStyle::clone(const RenderStyle& style)
{
- auto newStyle = RenderStyle::create();
- newStyle->inheritFrom(parentStyle);
- newStyle->inheritUnicodeBidiFrom(parentStyle);
- newStyle->setDisplay(display);
+ return RenderStyle(style, Clone);
+}
+
+std::unique_ptr<RenderStyle> RenderStyle::clonePtr(const RenderStyle& style)
+{
+ return std::make_unique<RenderStyle>(style, Clone);
+}
+
+RenderStyle RenderStyle::createAnonymousStyleWithDisplay(const RenderStyle& parentStyle, EDisplay display)
+{
+ auto newStyle = create();
+ newStyle.inheritFrom(&parentStyle);
+ newStyle.inheritUnicodeBidiFrom(&parentStyle);
+ newStyle.setDisplay(display);
return newStyle;
}
-std::unique_ptr<RenderStyle> RenderStyle::clone(const RenderStyle* other)
-{
- return std::unique_ptr<RenderStyle>(new RenderStyle(*other));
-}
-
-std::unique_ptr<RenderStyle> RenderStyle::createStyleInheritingFromPseudoStyle(const RenderStyle& pseudoStyle)
+RenderStyle RenderStyle::createStyleInheritingFromPseudoStyle(const RenderStyle& pseudoStyle)
{
ASSERT(pseudoStyle.styleType() == BEFORE || pseudoStyle.styleType() == AFTER);
- auto style = RenderStyle::create();
- style->inheritFrom(&pseudoStyle);
+ auto style = create();
+ style.inheritFrom(&pseudoStyle);
return style;
}
-ALWAYS_INLINE RenderStyle::RenderStyle(bool)
+RenderStyle::RenderStyle(CreateDefaultStyleTag)
: m_box(StyleBoxData::create())
, visual(StyleVisualData::create())
, m_background(StyleBackgroundData::create())
@@ -162,17 +167,17 @@
static_assert((sizeof(NonInheritedFlags) <= 8), "NonInheritedFlags does not grow");
}
-ALWAYS_INLINE RenderStyle::RenderStyle(const RenderStyle& o)
- : m_box(o.m_box)
- , visual(o.visual)
- , m_background(o.m_background)
- , surround(o.surround)
- , rareNonInheritedData(o.rareNonInheritedData)
- , rareInheritedData(o.rareInheritedData)
- , inherited(o.inherited)
- , m_svgStyle(o.m_svgStyle)
- , inherited_flags(o.inherited_flags)
- , noninherited_flags(o.noninherited_flags)
+RenderStyle::RenderStyle(const RenderStyle& other, CloneTag)
+ : m_box(other.m_box)
+ , visual(other.visual)
+ , m_background(other.m_background)
+ , surround(other.surround)
+ , rareNonInheritedData(other.rareNonInheritedData)
+ , rareInheritedData(other.rareInheritedData)
+ , inherited(other.inherited)
+ , m_svgStyle(other.m_svgStyle)
+ , inherited_flags(other.inherited_flags)
+ , noninherited_flags(other.noninherited_flags)
{
}
diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h
index bd716da..ba9deda 100644
--- a/Source/WebCore/rendering/style/RenderStyle.h
+++ b/Source/WebCore/rendering/style/RenderStyle.h
@@ -57,6 +57,7 @@
#include "StyleDeprecatedFlexibleBoxData.h"
#include "StyleFilterData.h"
#include "StyleFlexibleBoxData.h"
+#include "StyleInheritedData.h"
#include "StyleMarqueeData.h"
#include "StyleMultiColData.h"
#include "StyleRareInheritedData.h"
@@ -479,20 +480,29 @@
// !END SYNC!
private:
- // used to create the default style.
- ALWAYS_INLINE RenderStyle(bool);
- ALWAYS_INLINE RenderStyle(const RenderStyle&);
+ enum CreateDefaultStyleTag { CreateDefaultStyle };
+ RenderStyle(CreateDefaultStyleTag);
+
+ static RenderStyle& defaultStyle();
public:
- static std::unique_ptr<RenderStyle> create();
- static std::unique_ptr<RenderStyle> createDefaultStyle();
- static std::unique_ptr<RenderStyle> createAnonymousStyleWithDisplay(const RenderStyle* parentStyle, EDisplay);
- static std::unique_ptr<RenderStyle> clone(const RenderStyle*);
+ RenderStyle(RenderStyle&&) = default;
+ RenderStyle& operator=(RenderStyle&&) = default;
+
+ // This is not a true copy constructor. It doesn't copy pseudo style caches for example.
+ enum CloneTag { Clone };
+ RenderStyle(const RenderStyle&, CloneTag);
~RenderStyle();
- // Create a RenderStyle for generated content by inheriting from a pseudo style.
- static std::unique_ptr<RenderStyle> createStyleInheritingFromPseudoStyle(const RenderStyle& pseudoStyle);
+ static RenderStyle create();
+ static std::unique_ptr<RenderStyle> createPtr();
+
+ static RenderStyle clone(const RenderStyle&);
+ static std::unique_ptr<RenderStyle> clonePtr(const RenderStyle&);
+
+ static RenderStyle createAnonymousStyleWithDisplay(const RenderStyle& parentStyle, EDisplay);
+ static RenderStyle createStyleInheritingFromPseudoStyle(const RenderStyle& pseudoStyle);
ContentPosition resolvedJustifyContentPosition(const StyleContentAlignmentData& normalValueBehavior) const;
ContentDistributionType resolvedJustifyContentDistribution(const StyleContentAlignmentData& normalValueBehavior) const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGBlock.cpp b/Source/WebCore/rendering/svg/RenderSVGBlock.cpp
index 9cca123..ab63ecf 100644
--- a/Source/WebCore/rendering/svg/RenderSVGBlock.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGBlock.cpp
@@ -28,7 +28,7 @@
namespace WebCore {
-RenderSVGBlock::RenderSVGBlock(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGBlock::RenderSVGBlock(SVGGraphicsElement& element, RenderStyle&& style)
: RenderBlockFlow(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGBlock.h b/Source/WebCore/rendering/svg/RenderSVGBlock.h
index d033936..542d925 100644
--- a/Source/WebCore/rendering/svg/RenderSVGBlock.h
+++ b/Source/WebCore/rendering/svg/RenderSVGBlock.h
@@ -35,7 +35,7 @@
SVGGraphicsElement& graphicsElement() const { return downcast<SVGGraphicsElement>(nodeForNonAnonymous()); }
protected:
- RenderSVGBlock(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGBlock(SVGGraphicsElement&, RenderStyle&&);
void willBeDestroyed() override;
private:
diff --git a/Source/WebCore/rendering/svg/RenderSVGContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
index 86de8bf..eea4f0d 100644
--- a/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGContainer.cpp
@@ -37,7 +37,7 @@
namespace WebCore {
-RenderSVGContainer::RenderSVGContainer(SVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGContainer::RenderSVGContainer(SVGElement& element, RenderStyle&& style)
: RenderSVGModelObject(element, WTFMove(style))
, m_objectBoundingBoxValid(false)
, m_needsBoundariesUpdate(true)
diff --git a/Source/WebCore/rendering/svg/RenderSVGContainer.h b/Source/WebCore/rendering/svg/RenderSVGContainer.h
index 5887b30..0721240 100644
--- a/Source/WebCore/rendering/svg/RenderSVGContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGContainer.h
@@ -40,7 +40,7 @@
bool isObjectBoundingBoxValid() const { return m_objectBoundingBoxValid; }
protected:
- RenderSVGContainer(SVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGContainer(SVGElement&, RenderStyle&&);
const char* renderName() const override { return "RenderSVGContainer"; }
diff --git a/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp b/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp
index c59b0cc..79b19f9 100644
--- a/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGEllipse.cpp
@@ -33,7 +33,7 @@
namespace WebCore {
-RenderSVGEllipse::RenderSVGEllipse(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGEllipse::RenderSVGEllipse(SVGGraphicsElement& element, RenderStyle&& style)
: RenderSVGShape(element, WTFMove(style))
, m_usePathFallback(false)
{
diff --git a/Source/WebCore/rendering/svg/RenderSVGEllipse.h b/Source/WebCore/rendering/svg/RenderSVGEllipse.h
index 0f64908..cabad26 100644
--- a/Source/WebCore/rendering/svg/RenderSVGEllipse.h
+++ b/Source/WebCore/rendering/svg/RenderSVGEllipse.h
@@ -33,7 +33,7 @@
class RenderSVGEllipse final : public RenderSVGShape {
public:
- RenderSVGEllipse(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGEllipse(SVGGraphicsElement&, RenderStyle&&);
virtual ~RenderSVGEllipse();
private:
diff --git a/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
index 79c25af..c34928c 100644
--- a/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp
@@ -36,7 +36,7 @@
namespace WebCore {
-RenderSVGForeignObject::RenderSVGForeignObject(SVGForeignObjectElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGForeignObject::RenderSVGForeignObject(SVGForeignObjectElement& element, RenderStyle&& style)
: RenderSVGBlock(element, WTFMove(style))
, m_needsTransformUpdate(true)
{
diff --git a/Source/WebCore/rendering/svg/RenderSVGForeignObject.h b/Source/WebCore/rendering/svg/RenderSVGForeignObject.h
index 6716ca7..7bb1b10 100644
--- a/Source/WebCore/rendering/svg/RenderSVGForeignObject.h
+++ b/Source/WebCore/rendering/svg/RenderSVGForeignObject.h
@@ -32,7 +32,7 @@
class RenderSVGForeignObject final : public RenderSVGBlock {
public:
- RenderSVGForeignObject(SVGForeignObjectElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGForeignObject(SVGForeignObjectElement&, RenderStyle&&);
virtual ~RenderSVGForeignObject();
SVGForeignObjectElement& foreignObjectElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp b/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
index aeaefa3..41a1592 100644
--- a/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGGradientStop.cpp
@@ -31,7 +31,7 @@
using namespace SVGNames;
-RenderSVGGradientStop::RenderSVGGradientStop(SVGStopElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGGradientStop::RenderSVGGradientStop(SVGStopElement& element, RenderStyle&& style)
: RenderElement(element, WTFMove(style), 0)
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGGradientStop.h b/Source/WebCore/rendering/svg/RenderSVGGradientStop.h
index bbb0dd1..7a26129 100644
--- a/Source/WebCore/rendering/svg/RenderSVGGradientStop.h
+++ b/Source/WebCore/rendering/svg/RenderSVGGradientStop.h
@@ -32,7 +32,7 @@
// This class exists mostly so we can hear about gradient stop style changes
class RenderSVGGradientStop final : public RenderElement {
public:
- RenderSVGGradientStop(SVGStopElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGGradientStop(SVGStopElement&, RenderStyle&&);
virtual ~RenderSVGGradientStop();
SVGStopElement& element() const { return downcast<SVGStopElement>(RenderObject::nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
index 43d9304..39487aa 100644
--- a/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.cpp
@@ -25,7 +25,7 @@
namespace WebCore {
-RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGHiddenContainer::RenderSVGHiddenContainer(SVGElement& element, RenderStyle&& style)
: RenderSVGContainer(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
index a3a45bf..22bb303 100644
--- a/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGHiddenContainer.h
@@ -30,7 +30,7 @@
// <defs>, <linearGradient>, <radialGradient> are all good examples
class RenderSVGHiddenContainer : public RenderSVGContainer {
public:
- RenderSVGHiddenContainer(SVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGHiddenContainer(SVGElement&, RenderStyle&&);
protected:
void layout() override;
diff --git a/Source/WebCore/rendering/svg/RenderSVGImage.cpp b/Source/WebCore/rendering/svg/RenderSVGImage.cpp
index 263be06..1584761 100644
--- a/Source/WebCore/rendering/svg/RenderSVGImage.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGImage.cpp
@@ -43,7 +43,7 @@
namespace WebCore {
-RenderSVGImage::RenderSVGImage(SVGImageElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGImage::RenderSVGImage(SVGImageElement& element, RenderStyle&& style)
: RenderSVGModelObject(element, WTFMove(style))
, m_needsBoundariesUpdate(true)
, m_needsTransformUpdate(true)
diff --git a/Source/WebCore/rendering/svg/RenderSVGImage.h b/Source/WebCore/rendering/svg/RenderSVGImage.h
index dc297e7..ca45872 100644
--- a/Source/WebCore/rendering/svg/RenderSVGImage.h
+++ b/Source/WebCore/rendering/svg/RenderSVGImage.h
@@ -36,7 +36,7 @@
class RenderSVGImage final : public RenderSVGModelObject {
public:
- RenderSVGImage(SVGImageElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGImage(SVGImageElement&, RenderStyle&&);
virtual ~RenderSVGImage();
SVGImageElement& imageElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGInline.cpp b/Source/WebCore/rendering/svg/RenderSVGInline.cpp
index f77d740..71489ad 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInline.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGInline.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-RenderSVGInline::RenderSVGInline(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGInline::RenderSVGInline(SVGGraphicsElement& element, RenderStyle&& style)
: RenderInline(element, WTFMove(style))
{
setAlwaysCreateLineBoxes();
diff --git a/Source/WebCore/rendering/svg/RenderSVGInline.h b/Source/WebCore/rendering/svg/RenderSVGInline.h
index 6c41abc..2449e61 100644
--- a/Source/WebCore/rendering/svg/RenderSVGInline.h
+++ b/Source/WebCore/rendering/svg/RenderSVGInline.h
@@ -28,7 +28,7 @@
class RenderSVGInline : public RenderInline {
public:
- RenderSVGInline(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGInline(SVGGraphicsElement&, RenderStyle&&);
SVGGraphicsElement& graphicsElement() const { return downcast<SVGGraphicsElement>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
index b584ed9..e64cafa 100644
--- a/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp
@@ -39,7 +39,7 @@
namespace WebCore {
-RenderSVGModelObject::RenderSVGModelObject(SVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGModelObject::RenderSVGModelObject(SVGElement& element, RenderStyle&& style)
: RenderElement(element, WTFMove(style), 0)
, m_hasSVGShadow(false)
{
diff --git a/Source/WebCore/rendering/svg/RenderSVGModelObject.h b/Source/WebCore/rendering/svg/RenderSVGModelObject.h
index bf1d784..d0b6c6b 100644
--- a/Source/WebCore/rendering/svg/RenderSVGModelObject.h
+++ b/Source/WebCore/rendering/svg/RenderSVGModelObject.h
@@ -67,7 +67,7 @@
SVGElement& element() const { return downcast<SVGElement>(nodeForNonAnonymous()); }
protected:
- RenderSVGModelObject(SVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGModelObject(SVGElement&, RenderStyle&&);
void willBeDestroyed() override;
diff --git a/Source/WebCore/rendering/svg/RenderSVGPath.cpp b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
index 64e3f41..7b4e095 100644
--- a/Source/WebCore/rendering/svg/RenderSVGPath.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGPath.cpp
@@ -33,7 +33,7 @@
namespace WebCore {
-RenderSVGPath::RenderSVGPath(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGPath::RenderSVGPath(SVGGraphicsElement& element, RenderStyle&& style)
: RenderSVGShape(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGPath.h b/Source/WebCore/rendering/svg/RenderSVGPath.h
index 8b4b011..be219e1 100644
--- a/Source/WebCore/rendering/svg/RenderSVGPath.h
+++ b/Source/WebCore/rendering/svg/RenderSVGPath.h
@@ -32,7 +32,7 @@
class RenderSVGPath final : public RenderSVGShape {
public:
- RenderSVGPath(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGPath(SVGGraphicsElement&, RenderStyle&&);
virtual ~RenderSVGPath();
private:
diff --git a/Source/WebCore/rendering/svg/RenderSVGRect.cpp b/Source/WebCore/rendering/svg/RenderSVGRect.cpp
index 2963576..2de5bd3 100644
--- a/Source/WebCore/rendering/svg/RenderSVGRect.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGRect.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-RenderSVGRect::RenderSVGRect(SVGRectElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGRect::RenderSVGRect(SVGRectElement& element, RenderStyle&& style)
: RenderSVGShape(element, WTFMove(style))
, m_usePathFallback(false)
{
diff --git a/Source/WebCore/rendering/svg/RenderSVGRect.h b/Source/WebCore/rendering/svg/RenderSVGRect.h
index 59fd12e..d76a12f 100644
--- a/Source/WebCore/rendering/svg/RenderSVGRect.h
+++ b/Source/WebCore/rendering/svg/RenderSVGRect.h
@@ -35,7 +35,7 @@
class RenderSVGRect final : public RenderSVGShape {
public:
- RenderSVGRect(SVGRectElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGRect(SVGRectElement&, RenderStyle&&);
virtual ~RenderSVGRect();
SVGRectElement& rectElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
index ab328ba..0116b01 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
@@ -40,7 +40,7 @@
namespace WebCore {
-RenderSVGResourceClipper::RenderSVGResourceClipper(SVGClipPathElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceClipper::RenderSVGResourceClipper(SVGClipPathElement& element, RenderStyle&& style)
: RenderSVGResourceContainer(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h
index 84d5856..6e414bb 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceClipper.h
@@ -35,7 +35,7 @@
class RenderSVGResourceClipper final : public RenderSVGResourceContainer {
public:
- RenderSVGResourceClipper(SVGClipPathElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceClipper(SVGClipPathElement&, RenderStyle&&);
virtual ~RenderSVGResourceClipper();
SVGClipPathElement& clipPathElement() const { return downcast<SVGClipPathElement>(nodeForNonAnonymous()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
index a6b162f..ba2ec8c 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
@@ -34,7 +34,7 @@
return element.document().accessSVGExtensions();
}
-RenderSVGResourceContainer::RenderSVGResourceContainer(SVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceContainer::RenderSVGResourceContainer(SVGElement& element, RenderStyle&& style)
: RenderSVGHiddenContainer(element, WTFMove(style))
, m_id(element.getIdAttribute())
, m_registered(false)
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
index ca95a4d..faf03b5 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
@@ -45,7 +45,7 @@
void removeClientRenderLayer(RenderLayer*);
protected:
- RenderSVGResourceContainer(SVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceContainer(SVGElement&, RenderStyle&&);
enum InvalidationMode {
LayoutAndBoundariesInvalidation,
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
index 23ab1dc..a490464 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp
@@ -43,7 +43,7 @@
namespace WebCore {
-RenderSVGResourceFilter::RenderSVGResourceFilter(SVGFilterElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceFilter::RenderSVGResourceFilter(SVGFilterElement& element, RenderStyle&& style)
: RenderSVGResourceContainer(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
index 7d24444..b58d07c 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilter.h
@@ -62,7 +62,7 @@
class RenderSVGResourceFilter final : public RenderSVGResourceContainer {
public:
- RenderSVGResourceFilter(SVGFilterElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceFilter(SVGFilterElement&, RenderStyle&&);
virtual ~RenderSVGResourceFilter();
SVGFilterElement& filterElement() const { return downcast<SVGFilterElement>(RenderSVGResourceContainer::element()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp
index 569c893..323643b 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.cpp
@@ -37,7 +37,7 @@
namespace WebCore {
-RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive(SVGFilterPrimitiveStandardAttributes& filterPrimitiveElement, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive(SVGFilterPrimitiveStandardAttributes& filterPrimitiveElement, RenderStyle&& style)
: RenderSVGHiddenContainer(filterPrimitiveElement, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
index 06cc6dd..f0c8d93 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceFilterPrimitive.h
@@ -36,7 +36,7 @@
class RenderSVGResourceFilterPrimitive final : public RenderSVGHiddenContainer {
public:
- RenderSVGResourceFilterPrimitive(SVGFilterPrimitiveStandardAttributes&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceFilterPrimitive(SVGFilterPrimitiveStandardAttributes&, RenderStyle&&);
SVGFilterPrimitiveStandardAttributes& filterPrimitiveElement() const;
void styleDidChange(StyleDifference, const RenderStyle*) override;
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
index 2c7d254..bc9d02a 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-RenderSVGResourceGradient::RenderSVGResourceGradient(SVGGradientElement& node, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceGradient::RenderSVGResourceGradient(SVGGradientElement& node, RenderStyle&& style)
: RenderSVGResourceContainer(node, WTFMove(style))
, m_shouldCollectGradientAttributes(true)
#if USE(CG)
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
index b9e6b5a..3541ac9 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceGradient.h
@@ -52,7 +52,7 @@
FloatRect resourceBoundingBox(const RenderObject&) final { return FloatRect(); }
protected:
- RenderSVGResourceGradient(SVGGradientElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceGradient(SVGGradientElement&, RenderStyle&&);
void element() const = delete;
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
index 59f1b56..e51ff5f 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.cpp
@@ -24,7 +24,7 @@
namespace WebCore {
-RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient(SVGLinearGradientElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient(SVGLinearGradientElement& element, RenderStyle&& style)
: RenderSVGResourceGradient(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h
index b588d71..7b7f993 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceLinearGradient.h
@@ -29,7 +29,7 @@
class RenderSVGResourceLinearGradient final : public RenderSVGResourceGradient {
public:
- RenderSVGResourceLinearGradient(SVGLinearGradientElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceLinearGradient(SVGLinearGradientElement&, RenderStyle&&);
virtual ~RenderSVGResourceLinearGradient();
SVGLinearGradientElement& linearGradientElement() const { return downcast<SVGLinearGradientElement>(RenderSVGResourceGradient::gradientElement()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
index 9b8a2c8..75360ae 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
@@ -28,7 +28,7 @@
namespace WebCore {
-RenderSVGResourceMarker::RenderSVGResourceMarker(SVGMarkerElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceMarker::RenderSVGResourceMarker(SVGMarkerElement& element, RenderStyle&& style)
: RenderSVGResourceContainer(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h
index 4993603..bbd9d96 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMarker.h
@@ -32,7 +32,7 @@
class RenderSVGResourceMarker final : public RenderSVGResourceContainer {
public:
- RenderSVGResourceMarker(SVGMarkerElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceMarker(SVGMarkerElement&, RenderStyle&&);
virtual ~RenderSVGResourceMarker();
SVGMarkerElement& markerElement() const { return downcast<SVGMarkerElement>(RenderSVGResourceContainer::element()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
index 542e1b3..f0d6744 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
@@ -29,7 +29,7 @@
namespace WebCore {
-RenderSVGResourceMasker::RenderSVGResourceMasker(SVGMaskElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceMasker::RenderSVGResourceMasker(SVGMaskElement& element, RenderStyle&& style)
: RenderSVGResourceContainer(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.h b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.h
index 0985177..6536116 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceMasker.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceMasker.h
@@ -37,7 +37,7 @@
class RenderSVGResourceMasker final : public RenderSVGResourceContainer {
public:
- RenderSVGResourceMasker(SVGMaskElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceMasker(SVGMaskElement&, RenderStyle&&);
virtual ~RenderSVGResourceMasker();
SVGMaskElement& maskElement() const { return downcast<SVGMaskElement>(RenderSVGResourceContainer::element()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
index 2e3987d..ea936a4 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-RenderSVGResourcePattern::RenderSVGResourcePattern(SVGPatternElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourcePattern::RenderSVGResourcePattern(SVGPatternElement& element, RenderStyle&& style)
: RenderSVGResourceContainer(element, WTFMove(style))
, m_shouldCollectPatternAttributes(true)
{
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h
index 2fdbfc7..b55c62d 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h
@@ -41,7 +41,7 @@
class RenderSVGResourcePattern final : public RenderSVGResourceContainer {
public:
- RenderSVGResourcePattern(SVGPatternElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourcePattern(SVGPatternElement&, RenderStyle&&);
SVGPatternElement& patternElement() const;
void removeAllClientsFromCache(bool markForInvalidation = true) override;
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
index 93082b6..ecbc39b 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.cpp
@@ -24,7 +24,7 @@
namespace WebCore {
-RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient(SVGRadialGradientElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient(SVGRadialGradientElement& element, RenderStyle&& style)
: RenderSVGResourceGradient(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h
index da36440..618f045 100644
--- a/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h
+++ b/Source/WebCore/rendering/svg/RenderSVGResourceRadialGradient.h
@@ -31,7 +31,7 @@
class RenderSVGResourceRadialGradient final : public RenderSVGResourceGradient {
public:
- RenderSVGResourceRadialGradient(SVGRadialGradientElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGResourceRadialGradient(SVGRadialGradientElement&, RenderStyle&&);
virtual ~RenderSVGResourceRadialGradient();
SVGRadialGradientElement& radialGradientElement() const { return downcast<SVGRadialGradientElement>(RenderSVGResourceGradient::gradientElement()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
index bdb51cf..01c02f3 100644
--- a/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
@@ -50,7 +50,7 @@
namespace WebCore {
-RenderSVGRoot::RenderSVGRoot(SVGSVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGRoot::RenderSVGRoot(SVGSVGElement& element, RenderStyle&& style)
: RenderReplaced(element, WTFMove(style))
, m_objectBoundingBoxValid(false)
, m_isLayoutSizeChanged(false)
diff --git a/Source/WebCore/rendering/svg/RenderSVGRoot.h b/Source/WebCore/rendering/svg/RenderSVGRoot.h
index beb6c42..9569142 100644
--- a/Source/WebCore/rendering/svg/RenderSVGRoot.h
+++ b/Source/WebCore/rendering/svg/RenderSVGRoot.h
@@ -36,7 +36,7 @@
class RenderSVGRoot final : public RenderReplaced {
public:
- RenderSVGRoot(SVGSVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGRoot(SVGSVGElement&, RenderStyle&&);
virtual ~RenderSVGRoot();
SVGSVGElement& svgSVGElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGShape.cpp b/Source/WebCore/rendering/svg/RenderSVGShape.cpp
index c1eab70..fe91226 100644
--- a/Source/WebCore/rendering/svg/RenderSVGShape.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGShape.cpp
@@ -63,7 +63,7 @@
const RenderSVGShape& m_renderer;
};
-RenderSVGShape::RenderSVGShape(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGShape::RenderSVGShape(SVGGraphicsElement& element, RenderStyle&& style)
: RenderSVGModelObject(element, WTFMove(style))
, m_needsBoundariesUpdate(false) // Default is false, the cached rects are empty from the beginning.
, m_needsShapeUpdate(true) // Default is true, so we grab a Path object once from SVGGraphicsElement.
diff --git a/Source/WebCore/rendering/svg/RenderSVGShape.h b/Source/WebCore/rendering/svg/RenderSVGShape.h
index 8bd55bf..4a46f92 100644
--- a/Source/WebCore/rendering/svg/RenderSVGShape.h
+++ b/Source/WebCore/rendering/svg/RenderSVGShape.h
@@ -45,7 +45,7 @@
class RenderSVGShape : public RenderSVGModelObject {
public:
- RenderSVGShape(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGShape(SVGGraphicsElement&, RenderStyle&&);
virtual ~RenderSVGShape();
SVGGraphicsElement& graphicsElement() const { return downcast<SVGGraphicsElement>(RenderSVGModelObject::element()); }
diff --git a/Source/WebCore/rendering/svg/RenderSVGTSpan.h b/Source/WebCore/rendering/svg/RenderSVGTSpan.h
index 6019b88..dc2ea62 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTSpan.h
+++ b/Source/WebCore/rendering/svg/RenderSVGTSpan.h
@@ -28,7 +28,7 @@
namespace WebCore {
class RenderSVGTSpan final : public RenderSVGInline {
public:
- explicit RenderSVGTSpan(SVGTextPositioningElement& element, std::unique_ptr<RenderStyle> style)
+ explicit RenderSVGTSpan(SVGTextPositioningElement& element, RenderStyle&& style)
: RenderSVGInline(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGText.cpp b/Source/WebCore/rendering/svg/RenderSVGText.cpp
index bc0e8b5..513f866 100644
--- a/Source/WebCore/rendering/svg/RenderSVGText.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGText.cpp
@@ -51,7 +51,7 @@
namespace WebCore {
-RenderSVGText::RenderSVGText(SVGTextElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGText::RenderSVGText(SVGTextElement& element, RenderStyle&& style)
: RenderSVGBlock(element, WTFMove(style))
, m_needsReordering(false)
, m_needsPositioningValuesUpdate(false)
diff --git a/Source/WebCore/rendering/svg/RenderSVGText.h b/Source/WebCore/rendering/svg/RenderSVGText.h
index 7ec919c..d1e860f 100644
--- a/Source/WebCore/rendering/svg/RenderSVGText.h
+++ b/Source/WebCore/rendering/svg/RenderSVGText.h
@@ -34,7 +34,7 @@
class RenderSVGText final : public RenderSVGBlock {
public:
- RenderSVGText(SVGTextElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGText(SVGTextElement&, RenderStyle&&);
virtual ~RenderSVGText();
SVGTextElement& textElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp b/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
index 4f78f22..9892483 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGTextPath.cpp
@@ -32,7 +32,7 @@
namespace WebCore {
-RenderSVGTextPath::RenderSVGTextPath(SVGTextPathElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGTextPath::RenderSVGTextPath(SVGTextPathElement& element, RenderStyle&& style)
: RenderSVGInline(element, WTFMove(style))
{
}
diff --git a/Source/WebCore/rendering/svg/RenderSVGTextPath.h b/Source/WebCore/rendering/svg/RenderSVGTextPath.h
index 5d30cf9..aa2dae9 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTextPath.h
+++ b/Source/WebCore/rendering/svg/RenderSVGTextPath.h
@@ -27,7 +27,7 @@
class RenderSVGTextPath final : public RenderSVGInline {
public:
- RenderSVGTextPath(SVGTextPathElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGTextPath(SVGTextPathElement&, RenderStyle&&);
SVGTextPathElement& textPathElement() const;
diff --git a/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp
index d73b7dd..9c90318 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.cpp
@@ -27,7 +27,7 @@
namespace WebCore {
-RenderSVGTransformableContainer::RenderSVGTransformableContainer(SVGGraphicsElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGTransformableContainer::RenderSVGTransformableContainer(SVGGraphicsElement& element, RenderStyle&& style)
: RenderSVGContainer(element, WTFMove(style))
, m_needsTransformUpdate(true)
, m_didTransformToRootUpdate(false)
diff --git a/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h
index cc256a8..3c37201 100644
--- a/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGTransformableContainer.h
@@ -29,7 +29,7 @@
class SVGGraphicsElement;
class RenderSVGTransformableContainer final : public RenderSVGContainer {
public:
- RenderSVGTransformableContainer(SVGGraphicsElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGTransformableContainer(SVGGraphicsElement&, RenderStyle&&);
SVGGraphicsElement& graphicsElement() { return downcast<SVGGraphicsElement>(RenderSVGContainer::element()); }
bool isSVGTransformableContainer() const override { return true; }
diff --git a/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
index ca9eb7a..dd00a39 100644
--- a/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
+++ b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
@@ -30,7 +30,7 @@
namespace WebCore {
-RenderSVGViewportContainer::RenderSVGViewportContainer(SVGSVGElement& element, std::unique_ptr<RenderStyle> style)
+RenderSVGViewportContainer::RenderSVGViewportContainer(SVGSVGElement& element, RenderStyle&& style)
: RenderSVGContainer(element, WTFMove(style))
, m_didTransformToRootUpdate(false)
, m_isLayoutSizeChanged(false)
diff --git a/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
index d00eab4..49e0045 100644
--- a/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
+++ b/Source/WebCore/rendering/svg/RenderSVGViewportContainer.h
@@ -31,7 +31,7 @@
// thus we inherit from RenderSVGContainer instead of RenderSVGTransformableContainer
class RenderSVGViewportContainer final : public RenderSVGContainer {
public:
- RenderSVGViewportContainer(SVGSVGElement&, std::unique_ptr<RenderStyle>);
+ RenderSVGViewportContainer(SVGSVGElement&, RenderStyle&&);
SVGSVGElement& svgSVGElement() const;
diff --git a/Source/WebCore/style/RenderTreeUpdater.cpp b/Source/WebCore/style/RenderTreeUpdater.cpp
index 69c69f7..4e2d646 100644
--- a/Source/WebCore/style/RenderTreeUpdater.cpp
+++ b/Source/WebCore/style/RenderTreeUpdater.cpp
@@ -251,7 +251,7 @@
if (shouldCreateNewRenderer) {
if (element.hasCustomStyleResolveCallbacks())
element.willAttachRenderers();
- createRenderer(element, WTFMove(update.style));
+ createRenderer(element, WTFMove(*update.style));
invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded(element);
return;
}
@@ -261,19 +261,19 @@
auto& renderer = *element.renderer();
if (update.isSynthetic) {
- renderer.setStyle(WTFMove(update.style), StyleDifferenceRecompositeLayer);
+ renderer.setStyle(WTFMove(*update.style), StyleDifferenceRecompositeLayer);
return;
}
if (update.change == Style::NoChange) {
if (pseudoStyleCacheIsInvalid(&renderer, update.style.get()) || (parent().styleChange == Style::Force && renderer.requiresForcedStyleRecalcPropagation())) {
- renderer.setStyle(WTFMove(update.style), StyleDifferenceEqual);
+ renderer.setStyle(WTFMove(*update.style), StyleDifferenceEqual);
return;
}
return;
}
- renderer.setStyle(WTFMove(update.style), StyleDifferenceEqual);
+ renderer.setStyle(WTFMove(*update.style), StyleDifferenceEqual);
}
#if ENABLE(CSS_REGIONS)
@@ -289,17 +289,17 @@
}
#endif
-void RenderTreeUpdater::createRenderer(Element& element, std::unique_ptr<RenderStyle> style)
+void RenderTreeUpdater::createRenderer(Element& element, RenderStyle&& style)
{
if (!shouldCreateRenderer(element, renderTreePosition().parent()))
return;
RenderNamedFlowThread* parentFlowRenderer = nullptr;
#if ENABLE(CSS_REGIONS)
- parentFlowRenderer = moveToFlowThreadIfNeeded(element, *style);
+ parentFlowRenderer = moveToFlowThreadIfNeeded(element, style);
#endif
- if (!element.rendererIsNeeded(*style))
+ if (!element.rendererIsNeeded(style))
return;
renderTreePosition().computeNextSibling(element);
@@ -326,7 +326,7 @@
std::unique_ptr<RenderStyle> animatedStyle;
newRenderer->animation().updateAnimations(*newRenderer, initialStyle, animatedStyle);
if (animatedStyle)
- newRenderer->setStyleInternal(WTFMove(animatedStyle));
+ newRenderer->setStyleInternal(WTFMove(*animatedStyle));
newRenderer->initializeStyle();
@@ -482,7 +482,7 @@
Style::ElementUpdate elementUpdate;
- auto newStyle = RenderStyle::clone(current.renderer()->getCachedPseudoStyle(pseudoId, ¤t.renderer()->style()));
+ auto newStyle = RenderStyle::clonePtr(*current.renderer()->getCachedPseudoStyle(pseudoId, ¤t.renderer()->style()));
std::unique_ptr<RenderStyle> animatedStyle;
if (renderer && m_document.frame()->animation().updateAnimations(*renderer, *newStyle, animatedStyle))
diff --git a/Source/WebCore/style/RenderTreeUpdater.h b/Source/WebCore/style/RenderTreeUpdater.h
index 2d48478..1a96796 100644
--- a/Source/WebCore/style/RenderTreeUpdater.h
+++ b/Source/WebCore/style/RenderTreeUpdater.h
@@ -58,7 +58,7 @@
void updateRenderTree(ContainerNode& root);
void updateTextRenderer(Text&);
void updateElementRenderer(Element&, Style::ElementUpdate&);
- void createRenderer(Element&, std::unique_ptr<RenderStyle>);
+ void createRenderer(Element&, RenderStyle&&);
void invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded(Node&);
void updateBeforeOrAfterPseudoElement(Element&, PseudoId);
diff --git a/Source/WebCore/style/StyleResolveForDocument.cpp b/Source/WebCore/style/StyleResolveForDocument.cpp
index d2c6f55..7bf09d8 100644
--- a/Source/WebCore/style/StyleResolveForDocument.cpp
+++ b/Source/WebCore/style/StyleResolveForDocument.cpp
@@ -47,7 +47,7 @@
namespace Style {
-std::unique_ptr<RenderStyle> resolveForDocument(const Document& document)
+RenderStyle resolveForDocument(const Document& document)
{
ASSERT(document.hasLivingRenderTree());
@@ -55,19 +55,19 @@
auto documentStyle = RenderStyle::create();
- documentStyle->setDisplay(BLOCK);
- documentStyle->setRTLOrdering(document.visuallyOrdered() ? VisualOrder : LogicalOrder);
- documentStyle->setZoom(!document.printing() ? renderView.frame().pageZoomFactor() : 1);
- documentStyle->setPageScaleTransform(renderView.frame().frameScaleFactor());
- FontCascadeDescription documentFontDescription = documentStyle->fontDescription();
+ documentStyle.setDisplay(BLOCK);
+ documentStyle.setRTLOrdering(document.visuallyOrdered() ? VisualOrder : LogicalOrder);
+ documentStyle.setZoom(!document.printing() ? renderView.frame().pageZoomFactor() : 1);
+ documentStyle.setPageScaleTransform(renderView.frame().frameScaleFactor());
+ FontCascadeDescription documentFontDescription = documentStyle.fontDescription();
documentFontDescription.setLocale(document.contentLanguage());
- documentStyle->setFontDescription(WTFMove(documentFontDescription));
+ documentStyle.setFontDescription(WTFMove(documentFontDescription));
// This overrides any -webkit-user-modify inherited from the parent iframe.
- documentStyle->setUserModify(document.inDesignMode() ? READ_WRITE : READ_ONLY);
+ documentStyle.setUserModify(document.inDesignMode() ? READ_WRITE : READ_ONLY);
#if PLATFORM(IOS)
if (document.inDesignMode())
- documentStyle->setTextSizeAdjust(TextSizeAdjustment(NoTextSizeAdjustment));
+ documentStyle.setTextSizeAdjust(TextSizeAdjustment(NoTextSizeAdjustment));
#endif
Element* docElement = document.documentElement();
@@ -79,24 +79,24 @@
auto* body = document.bodyOrFrameset();
RenderObject* bodyRenderer = body ? body->renderer() : nullptr;
if (bodyRenderer && !docElementRenderer->style().hasExplicitlySetWritingMode())
- documentStyle->setWritingMode(bodyRenderer->style().writingMode());
+ documentStyle.setWritingMode(bodyRenderer->style().writingMode());
else
- documentStyle->setWritingMode(docElementRenderer->style().writingMode());
+ documentStyle.setWritingMode(docElementRenderer->style().writingMode());
if (bodyRenderer && !docElementRenderer->style().hasExplicitlySetDirection())
- documentStyle->setDirection(bodyRenderer->style().direction());
+ documentStyle.setDirection(bodyRenderer->style().direction());
else
- documentStyle->setDirection(docElementRenderer->style().direction());
+ documentStyle.setDirection(docElementRenderer->style().direction());
}
const Pagination& pagination = renderView.frameView().pagination();
if (pagination.mode != Pagination::Unpaginated) {
- documentStyle->setColumnStylesFromPaginationMode(pagination.mode);
- documentStyle->setColumnGap(pagination.gap);
+ documentStyle.setColumnStylesFromPaginationMode(pagination.mode);
+ documentStyle.setColumnGap(pagination.gap);
if (renderView.multiColumnFlowThread())
- renderView.updateColumnProgressionFromStyle(*documentStyle);
+ renderView.updateColumnProgressionFromStyle(documentStyle);
if (renderView.frame().page()->paginationLineGridEnabled()) {
- documentStyle->setLineGrid("-webkit-default-pagination-grid");
- documentStyle->setLineSnap(LineSnapContain);
+ documentStyle.setLineGrid("-webkit-default-pagination-grid");
+ documentStyle.setLineSnap(LineSnapContain);
}
}
@@ -111,17 +111,17 @@
int size = fontSizeForKeyword(CSSValueMedium, false, document);
fontDescription.setSpecifiedSize(size);
bool useSVGZoomRules = document.isSVGDocument();
- fontDescription.setComputedSize(computedFontSizeFromSpecifiedSize(size, fontDescription.isAbsoluteSize(), useSVGZoomRules, documentStyle.get(), document));
+ fontDescription.setComputedSize(computedFontSizeFromSpecifiedSize(size, fontDescription.isAbsoluteSize(), useSVGZoomRules, &documentStyle, document));
FontOrientation fontOrientation;
NonCJKGlyphOrientation glyphOrientation;
- std::tie(fontOrientation, glyphOrientation) = documentStyle->fontAndGlyphOrientation();
+ std::tie(fontOrientation, glyphOrientation) = documentStyle.fontAndGlyphOrientation();
fontDescription.setOrientation(fontOrientation);
fontDescription.setNonCJKGlyphOrientation(glyphOrientation);
- documentStyle->setFontDescription(fontDescription);
+ documentStyle.setFontDescription(fontDescription);
- documentStyle->fontCascade().update(&const_cast<Document&>(document).fontSelector());
+ documentStyle.fontCascade().update(&const_cast<Document&>(document).fontSelector());
return documentStyle;
}
diff --git a/Source/WebCore/style/StyleResolveForDocument.h b/Source/WebCore/style/StyleResolveForDocument.h
index d10e86c..3b6e214 100644
--- a/Source/WebCore/style/StyleResolveForDocument.h
+++ b/Source/WebCore/style/StyleResolveForDocument.h
@@ -35,7 +35,7 @@
namespace Style {
-std::unique_ptr<RenderStyle> resolveForDocument(const Document&);
+RenderStyle resolveForDocument(const Document&);
}
}
diff --git a/Source/WebCore/style/StyleSharingResolver.cpp b/Source/WebCore/style/StyleSharingResolver.cpp
index df2f3d8..941b1f1 100644
--- a/Source/WebCore/style/StyleSharingResolver.cpp
+++ b/Source/WebCore/style/StyleSharingResolver.cpp
@@ -136,7 +136,7 @@
m_elementsSharingStyle.add(&element, shareElement);
- return RenderStyle::clone(update.elementStyle(*shareElement));
+ return RenderStyle::clonePtr(*update.elementStyle(*shareElement));
}
StyledElement* SharingResolver::findSibling(const Context& context, Node* node, unsigned& count) const
diff --git a/Source/WebCore/style/StyleTreeResolver.cpp b/Source/WebCore/style/StyleTreeResolver.cpp
index 53d90b1..b46ca7f 100644
--- a/Source/WebCore/style/StyleTreeResolver.cpp
+++ b/Source/WebCore/style/StyleTreeResolver.cpp
@@ -56,7 +56,7 @@
{
if (placeholderStyle)
return;
- placeholderStyle = RenderStyle::create().release();
+ placeholderStyle = RenderStyle::createPtr().release();
placeholderStyle->setDisplay(NONE);
placeholderStyle->setIsPlaceholderStyle();
placeholderStyle->fontCascade().update(&document.fontSelector());
@@ -123,7 +123,7 @@
{
if (!m_document.haveStylesheetsLoaded() && !element.renderer()) {
m_document.setHasNodesWithPlaceholderStyle();
- return RenderStyle::clone(placeholderStyle);
+ return RenderStyle::clonePtr(*placeholderStyle);
}
if (element.hasCustomStyleResolveCallbacks()) {
@@ -205,7 +205,7 @@
update.isSynthetic = true;
if (&element == m_document.documentElement()) {
- m_documentElementStyle = RenderStyle::clone(update.style.get());
+ m_documentElementStyle = RenderStyle::clonePtr(*update.style);
scope().styleResolver.setOverrideDocumentElementStyle(m_documentElementStyle.get());
// If "rem" units are used anywhere in the document, and if the document element's font size changes, then force font updating
diff --git a/Source/WebCore/svg/SVGAElement.cpp b/Source/WebCore/svg/SVGAElement.cpp
index fcd94ee..22f8af4 100644
--- a/Source/WebCore/svg/SVGAElement.cpp
+++ b/Source/WebCore/svg/SVGAElement.cpp
@@ -105,7 +105,7 @@
SVGGraphicsElement::svgAttributeChanged(attrName);
}
-RenderPtr<RenderElement> SVGAElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGAElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
if (parentNode() && parentNode()->isSVGElement() && downcast<SVGElement>(*parentNode()).isTextContent())
return createRenderer<RenderSVGInline>(*this, WTFMove(style));
diff --git a/Source/WebCore/svg/SVGAElement.h b/Source/WebCore/svg/SVGAElement.h
index 9792499..c0f6cd6 100644
--- a/Source/WebCore/svg/SVGAElement.h
+++ b/Source/WebCore/svg/SVGAElement.h
@@ -46,7 +46,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
void defaultEventHandler(Event*) override;
diff --git a/Source/WebCore/svg/SVGAltGlyphElement.cpp b/Source/WebCore/svg/SVGAltGlyphElement.cpp
index 9245505..deb2822 100644
--- a/Source/WebCore/svg/SVGAltGlyphElement.cpp
+++ b/Source/WebCore/svg/SVGAltGlyphElement.cpp
@@ -82,7 +82,7 @@
return false;
}
-RenderPtr<RenderElement> SVGAltGlyphElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGAltGlyphElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGTSpan>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGAltGlyphElement.h b/Source/WebCore/svg/SVGAltGlyphElement.h
index 8ea96ff..db1fd29 100644
--- a/Source/WebCore/svg/SVGAltGlyphElement.h
+++ b/Source/WebCore/svg/SVGAltGlyphElement.h
@@ -47,7 +47,7 @@
private:
SVGAltGlyphElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGAltGlyphElement)
diff --git a/Source/WebCore/svg/SVGCircleElement.cpp b/Source/WebCore/svg/SVGCircleElement.cpp
index 1585cf4..59e19b1 100644
--- a/Source/WebCore/svg/SVGCircleElement.cpp
+++ b/Source/WebCore/svg/SVGCircleElement.cpp
@@ -98,7 +98,7 @@
}
}
-RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGCircleElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGEllipse>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGCircleElement.h b/Source/WebCore/svg/SVGCircleElement.h
index ffe94a9..0ddcc9e 100644
--- a/Source/WebCore/svg/SVGCircleElement.h
+++ b/Source/WebCore/svg/SVGCircleElement.h
@@ -43,7 +43,7 @@
bool selfHasRelativeLengths() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGCircleElement)
DECLARE_ANIMATED_LENGTH(Cx, cx)
diff --git a/Source/WebCore/svg/SVGClipPathElement.cpp b/Source/WebCore/svg/SVGClipPathElement.cpp
index 135409a..bbe6e0b 100644
--- a/Source/WebCore/svg/SVGClipPathElement.cpp
+++ b/Source/WebCore/svg/SVGClipPathElement.cpp
@@ -102,7 +102,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGClipPathElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGClipPathElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceClipper>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGClipPathElement.h b/Source/WebCore/svg/SVGClipPathElement.h
index 8ffc50b..d1cef9b 100644
--- a/Source/WebCore/svg/SVGClipPathElement.h
+++ b/Source/WebCore/svg/SVGClipPathElement.h
@@ -48,7 +48,7 @@
void svgAttributeChanged(const QualifiedName&) override;
void childrenChanged(const ChildChange&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGClipPathElement)
DECLARE_ANIMATED_ENUMERATION(ClipPathUnits, clipPathUnits, SVGUnitTypes::SVGUnitType)
diff --git a/Source/WebCore/svg/SVGDefsElement.cpp b/Source/WebCore/svg/SVGDefsElement.cpp
index d1f4879..f2fd3ed 100644
--- a/Source/WebCore/svg/SVGDefsElement.cpp
+++ b/Source/WebCore/svg/SVGDefsElement.cpp
@@ -51,7 +51,7 @@
return SVGTests::isValid();
}
-RenderPtr<RenderElement> SVGDefsElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGDefsElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGHiddenContainer>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGDefsElement.h b/Source/WebCore/svg/SVGDefsElement.h
index 01fa529..015485f 100644
--- a/Source/WebCore/svg/SVGDefsElement.h
+++ b/Source/WebCore/svg/SVGDefsElement.h
@@ -38,7 +38,7 @@
bool isValid() const override;
bool supportsFocus() const override { return false; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGDefsElement)
DECLARE_ANIMATED_BOOLEAN_OVERRIDE(ExternalResourcesRequired, externalResourcesRequired)
diff --git a/Source/WebCore/svg/SVGEllipseElement.cpp b/Source/WebCore/svg/SVGEllipseElement.cpp
index 547b2dc..c23d9b6 100644
--- a/Source/WebCore/svg/SVGEllipseElement.cpp
+++ b/Source/WebCore/svg/SVGEllipseElement.cpp
@@ -100,7 +100,7 @@
SVGGraphicsElement::svgAttributeChanged(attrName);
}
-RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGEllipseElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGEllipse>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGEllipseElement.h b/Source/WebCore/svg/SVGEllipseElement.h
index a1c12ff..3883f3f 100644
--- a/Source/WebCore/svg/SVGEllipseElement.h
+++ b/Source/WebCore/svg/SVGEllipseElement.h
@@ -43,7 +43,7 @@
bool selfHasRelativeLengths() const override { return true; };
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGEllipseElement)
DECLARE_ANIMATED_LENGTH(Cx, cx)
diff --git a/Source/WebCore/svg/SVGFilterElement.cpp b/Source/WebCore/svg/SVGFilterElement.cpp
index 6161f53..7f13c80 100644
--- a/Source/WebCore/svg/SVGFilterElement.cpp
+++ b/Source/WebCore/svg/SVGFilterElement.cpp
@@ -183,7 +183,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGFilterElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGFilterElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceFilter>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGFilterElement.h b/Source/WebCore/svg/SVGFilterElement.h
index 9e71e7b..6f871de 100644
--- a/Source/WebCore/svg/SVGFilterElement.h
+++ b/Source/WebCore/svg/SVGFilterElement.h
@@ -53,7 +53,7 @@
void svgAttributeChanged(const QualifiedName&) override;
void childrenChanged(const ChildChange&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
bool selfHasRelativeLengths() const override { return true; }
diff --git a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
index cdad358..5070777 100644
--- a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
+++ b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
@@ -137,7 +137,7 @@
filterEffect->setHasHeight(true);
}
-RenderPtr<RenderElement> SVGFilterPrimitiveStandardAttributes::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGFilterPrimitiveStandardAttributes::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceFilterPrimitive>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
index a7ac2d0..453b080 100644
--- a/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
+++ b/Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
@@ -56,7 +56,7 @@
private:
bool isFilterEffect() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool rendererIsNeeded(const RenderStyle&) override;
bool childShouldCreateRenderer(const Node&) const override { return false; }
diff --git a/Source/WebCore/svg/SVGForeignObjectElement.cpp b/Source/WebCore/svg/SVGForeignObjectElement.cpp
index 09eeaa5..cc31606 100644
--- a/Source/WebCore/svg/SVGForeignObjectElement.cpp
+++ b/Source/WebCore/svg/SVGForeignObjectElement.cpp
@@ -122,7 +122,7 @@
RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
}
-RenderPtr<RenderElement> SVGForeignObjectElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGForeignObjectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGForeignObject>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGForeignObjectElement.h b/Source/WebCore/svg/SVGForeignObjectElement.h
index e4a0a07..a15b61e 100644
--- a/Source/WebCore/svg/SVGForeignObjectElement.h
+++ b/Source/WebCore/svg/SVGForeignObjectElement.h
@@ -44,7 +44,7 @@
bool rendererIsNeeded(const RenderStyle&) override;
bool childShouldCreateRenderer(const Node&) const override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override { return true; }
diff --git a/Source/WebCore/svg/SVGGElement.cpp b/Source/WebCore/svg/SVGGElement.cpp
index e28d062..470d7c1 100644
--- a/Source/WebCore/svg/SVGGElement.cpp
+++ b/Source/WebCore/svg/SVGGElement.cpp
@@ -83,13 +83,13 @@
RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
}
-RenderPtr<RenderElement> SVGGElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGGElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
// SVG 1.1 testsuite explicitely uses constructs like <g display="none"><linearGradient>
// We still have to create renderers for the <g> & <linearGradient> element, though the
// subtree may be hidden - we only want the resource renderers to exist so they can be
// referenced from somewhere else.
- if (style->display() == NONE)
+ if (style.display() == NONE)
return createRenderer<RenderSVGHiddenContainer>(*this, WTFMove(style));
return createRenderer<RenderSVGTransformableContainer>(*this, WTFMove(style));
diff --git a/Source/WebCore/svg/SVGGElement.h b/Source/WebCore/svg/SVGGElement.h
index 45ca11d..ebcc345 100644
--- a/Source/WebCore/svg/SVGGElement.h
+++ b/Source/WebCore/svg/SVGGElement.h
@@ -36,7 +36,7 @@
private:
SVGGElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool isValid() const override { return SVGTests::isValid(); }
diff --git a/Source/WebCore/svg/SVGGraphicsElement.cpp b/Source/WebCore/svg/SVGGraphicsElement.cpp
index ca02c32..1222ebb 100644
--- a/Source/WebCore/svg/SVGGraphicsElement.cpp
+++ b/Source/WebCore/svg/SVGGraphicsElement.cpp
@@ -161,7 +161,7 @@
return SVGTransformable::getBBox(this, styleUpdateStrategy);
}
-RenderPtr<RenderElement> SVGGraphicsElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGGraphicsElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
// By default, any subclass is expected to do path-based drawing
return createRenderer<RenderSVGPath>(*this, WTFMove(style));
diff --git a/Source/WebCore/svg/SVGGraphicsElement.h b/Source/WebCore/svg/SVGGraphicsElement.h
index fec303a..e0858e3 100644
--- a/Source/WebCore/svg/SVGGraphicsElement.h
+++ b/Source/WebCore/svg/SVGGraphicsElement.h
@@ -51,7 +51,7 @@
// "base class" methods for all the elements which render as paths
virtual void toClipPath(Path&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
protected:
SVGGraphicsElement(const QualifiedName&, Document&);
diff --git a/Source/WebCore/svg/SVGImageElement.cpp b/Source/WebCore/svg/SVGImageElement.cpp
index ec84ebc..b5c075f 100644
--- a/Source/WebCore/svg/SVGImageElement.cpp
+++ b/Source/WebCore/svg/SVGImageElement.cpp
@@ -169,7 +169,7 @@
ASSERT_NOT_REACHED();
}
-RenderPtr<RenderElement> SVGImageElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGImageElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGImage>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGImageElement.h b/Source/WebCore/svg/SVGImageElement.h
index 832df1c..67baca6 100644
--- a/Source/WebCore/svg/SVGImageElement.h
+++ b/Source/WebCore/svg/SVGImageElement.h
@@ -51,7 +51,7 @@
void didAttachRenderers() override;
InsertionNotificationRequest insertedInto(ContainerNode&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
const AtomicString& imageSourceURL() const override;
void addSubresourceAttributeURLs(ListHashSet<URL>&) const override;
diff --git a/Source/WebCore/svg/SVGLinearGradientElement.cpp b/Source/WebCore/svg/SVGLinearGradientElement.cpp
index 4dcf913..b9ec24b 100644
--- a/Source/WebCore/svg/SVGLinearGradientElement.cpp
+++ b/Source/WebCore/svg/SVGLinearGradientElement.cpp
@@ -113,7 +113,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGLinearGradientElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGLinearGradientElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceLinearGradient>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGLinearGradientElement.h b/Source/WebCore/svg/SVGLinearGradientElement.h
index 5c50bd5..2ab9aff 100644
--- a/Source/WebCore/svg/SVGLinearGradientElement.h
+++ b/Source/WebCore/svg/SVGLinearGradientElement.h
@@ -42,7 +42,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override;
diff --git a/Source/WebCore/svg/SVGMarkerElement.cpp b/Source/WebCore/svg/SVGMarkerElement.cpp
index 0f25782..d9cbb3d 100644
--- a/Source/WebCore/svg/SVGMarkerElement.cpp
+++ b/Source/WebCore/svg/SVGMarkerElement.cpp
@@ -211,7 +211,7 @@
setOrient(SVGMarkerOrientAngle, angle);
}
-RenderPtr<RenderElement> SVGMarkerElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGMarkerElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceMarker>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGMarkerElement.h b/Source/WebCore/svg/SVGMarkerElement.h
index 3da28c9..d272169 100644
--- a/Source/WebCore/svg/SVGMarkerElement.h
+++ b/Source/WebCore/svg/SVGMarkerElement.h
@@ -139,7 +139,7 @@
void svgAttributeChanged(const QualifiedName&) override;
void childrenChanged(const ChildChange&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool rendererIsNeeded(const RenderStyle&) override { return true; }
bool selfHasRelativeLengths() const override;
diff --git a/Source/WebCore/svg/SVGMaskElement.cpp b/Source/WebCore/svg/SVGMaskElement.cpp
index ed62f55..0ab3f23 100644
--- a/Source/WebCore/svg/SVGMaskElement.cpp
+++ b/Source/WebCore/svg/SVGMaskElement.cpp
@@ -157,7 +157,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGMaskElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGMaskElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceMasker>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGMaskElement.h b/Source/WebCore/svg/SVGMaskElement.h
index 1523afb..8f9d5ec 100644
--- a/Source/WebCore/svg/SVGMaskElement.h
+++ b/Source/WebCore/svg/SVGMaskElement.h
@@ -48,7 +48,7 @@
void svgAttributeChanged(const QualifiedName&) override;
void childrenChanged(const ChildChange&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override { return true; }
diff --git a/Source/WebCore/svg/SVGPathElement.cpp b/Source/WebCore/svg/SVGPathElement.cpp
index e9876e5..48fe36d 100644
--- a/Source/WebCore/svg/SVGPathElement.cpp
+++ b/Source/WebCore/svg/SVGPathElement.cpp
@@ -404,7 +404,7 @@
return renderer->path().boundingRect();
}
-RenderPtr<RenderElement> SVGPathElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGPathElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
// By default, any subclass is expected to do path-based drawing
return createRenderer<RenderSVGPath>(*this, WTFMove(style));
diff --git a/Source/WebCore/svg/SVGPathElement.h b/Source/WebCore/svg/SVGPathElement.h
index f78848b..8240809 100644
--- a/Source/WebCore/svg/SVGPathElement.h
+++ b/Source/WebCore/svg/SVGPathElement.h
@@ -120,7 +120,7 @@
DECLARE_ANIMATED_BOOLEAN_OVERRIDE(ExternalResourcesRequired, externalResourcesRequired)
END_DECLARE_ANIMATED_PROPERTIES
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
Node::InsertionNotificationRequest insertedInto(ContainerNode&) override;
void removedFrom(ContainerNode&) override;
diff --git a/Source/WebCore/svg/SVGPatternElement.cpp b/Source/WebCore/svg/SVGPatternElement.cpp
index f524809..e97a602 100644
--- a/Source/WebCore/svg/SVGPatternElement.cpp
+++ b/Source/WebCore/svg/SVGPatternElement.cpp
@@ -182,7 +182,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGPatternElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGPatternElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourcePattern>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGPatternElement.h b/Source/WebCore/svg/SVGPatternElement.h
index 7260f92..a786679 100644
--- a/Source/WebCore/svg/SVGPatternElement.h
+++ b/Source/WebCore/svg/SVGPatternElement.h
@@ -62,7 +62,7 @@
void svgAttributeChanged(const QualifiedName&) override;
void childrenChanged(const ChildChange&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override { return true; }
diff --git a/Source/WebCore/svg/SVGRadialGradientElement.cpp b/Source/WebCore/svg/SVGRadialGradientElement.cpp
index e475f92..c9c529dbc 100644
--- a/Source/WebCore/svg/SVGRadialGradientElement.cpp
+++ b/Source/WebCore/svg/SVGRadialGradientElement.cpp
@@ -125,7 +125,7 @@
object->setNeedsLayout();
}
-RenderPtr<RenderElement> SVGRadialGradientElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGRadialGradientElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGResourceRadialGradient>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGRadialGradientElement.h b/Source/WebCore/svg/SVGRadialGradientElement.h
index 4fcd5242..6e63782 100644
--- a/Source/WebCore/svg/SVGRadialGradientElement.h
+++ b/Source/WebCore/svg/SVGRadialGradientElement.h
@@ -42,7 +42,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override;
diff --git a/Source/WebCore/svg/SVGRectElement.cpp b/Source/WebCore/svg/SVGRectElement.cpp
index 63b58bf..4f43902 100644
--- a/Source/WebCore/svg/SVGRectElement.cpp
+++ b/Source/WebCore/svg/SVGRectElement.cpp
@@ -110,7 +110,7 @@
SVGGraphicsElement::svgAttributeChanged(attrName);
}
-RenderPtr<RenderElement> SVGRectElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGRectElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGRect>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGRectElement.h b/Source/WebCore/svg/SVGRectElement.h
index a42b3d3..bb248c3 100644
--- a/Source/WebCore/svg/SVGRectElement.h
+++ b/Source/WebCore/svg/SVGRectElement.h
@@ -44,7 +44,7 @@
bool selfHasRelativeLengths() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGRectElement)
DECLARE_ANIMATED_LENGTH(X, x)
diff --git a/Source/WebCore/svg/SVGSVGElement.cpp b/Source/WebCore/svg/SVGSVGElement.cpp
index 825e59fe..2b788b4 100644
--- a/Source/WebCore/svg/SVGSVGElement.cpp
+++ b/Source/WebCore/svg/SVGSVGElement.cpp
@@ -439,7 +439,7 @@
return StyledElement::rendererIsNeeded(style);
}
-RenderPtr<RenderElement> SVGSVGElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGSVGElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
if (isOutermostSVGSVGElement())
return createRenderer<RenderSVGRoot>(*this, WTFMove(style));
diff --git a/Source/WebCore/svg/SVGSVGElement.h b/Source/WebCore/svg/SVGSVGElement.h
index 39bb602..2c33d0d 100644
--- a/Source/WebCore/svg/SVGSVGElement.h
+++ b/Source/WebCore/svg/SVGSVGElement.h
@@ -134,7 +134,7 @@
void didMoveToNewDocument(Document* oldDocument) override;
void parseAttribute(const QualifiedName&, const AtomicString&) override;
bool rendererIsNeeded(const RenderStyle&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
InsertionNotificationRequest insertedInto(ContainerNode&) override;
void removedFrom(ContainerNode&) override;
void svgAttributeChanged(const QualifiedName&) override;
diff --git a/Source/WebCore/svg/SVGStopElement.cpp b/Source/WebCore/svg/SVGStopElement.cpp
index b805a83..c17edd9 100644
--- a/Source/WebCore/svg/SVGStopElement.cpp
+++ b/Source/WebCore/svg/SVGStopElement.cpp
@@ -76,7 +76,7 @@
SVGElement::svgAttributeChanged(attrName);
}
-RenderPtr<RenderElement> SVGStopElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGStopElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGGradientStop>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGStopElement.h b/Source/WebCore/svg/SVGStopElement.h
index 28c662e..480d4a9 100644
--- a/Source/WebCore/svg/SVGStopElement.h
+++ b/Source/WebCore/svg/SVGStopElement.h
@@ -40,7 +40,7 @@
bool isGradientStop() const override { return true; }
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool rendererIsNeeded(const RenderStyle&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGStopElement)
diff --git a/Source/WebCore/svg/SVGSwitchElement.cpp b/Source/WebCore/svg/SVGSwitchElement.cpp
index 7619aa0..a40571a 100644
--- a/Source/WebCore/svg/SVGSwitchElement.cpp
+++ b/Source/WebCore/svg/SVGSwitchElement.cpp
@@ -60,7 +60,7 @@
return false;
}
-RenderPtr<RenderElement> SVGSwitchElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGSwitchElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGTransformableContainer>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGSwitchElement.h b/Source/WebCore/svg/SVGSwitchElement.h
index 2c2d0c5..4210b80 100644
--- a/Source/WebCore/svg/SVGSwitchElement.h
+++ b/Source/WebCore/svg/SVGSwitchElement.h
@@ -38,7 +38,7 @@
bool isValid() const override { return SVGTests::isValid(); }
bool childShouldCreateRenderer(const Node&) const override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
BEGIN_DECLARE_ANIMATED_PROPERTIES(SVGSwitchElement)
DECLARE_ANIMATED_BOOLEAN_OVERRIDE(ExternalResourcesRequired, externalResourcesRequired)
diff --git a/Source/WebCore/svg/SVGSymbolElement.cpp b/Source/WebCore/svg/SVGSymbolElement.cpp
index 04d2723..051bdc5 100644
--- a/Source/WebCore/svg/SVGSymbolElement.cpp
+++ b/Source/WebCore/svg/SVGSymbolElement.cpp
@@ -74,7 +74,7 @@
return hasAttribute(SVGNames::viewBoxAttr);
}
-RenderPtr<RenderElement> SVGSymbolElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGSymbolElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGHiddenContainer>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGSymbolElement.h b/Source/WebCore/svg/SVGSymbolElement.h
index 876d35b..c8d076b 100644
--- a/Source/WebCore/svg/SVGSymbolElement.h
+++ b/Source/WebCore/svg/SVGSymbolElement.h
@@ -41,7 +41,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool selfHasRelativeLengths() const override;
diff --git a/Source/WebCore/svg/SVGTRefElement.cpp b/Source/WebCore/svg/SVGTRefElement.cpp
index 8d88cec..c7d846e 100644
--- a/Source/WebCore/svg/SVGTRefElement.cpp
+++ b/Source/WebCore/svg/SVGTRefElement.cpp
@@ -194,7 +194,7 @@
SVGTextPositioningElement::svgAttributeChanged(attrName);
}
-RenderPtr<RenderElement> SVGTRefElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGTRefElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGInline>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGTRefElement.h b/Source/WebCore/svg/SVGTRefElement.h
index d011a63..ba3a7ad 100644
--- a/Source/WebCore/svg/SVGTRefElement.h
+++ b/Source/WebCore/svg/SVGTRefElement.h
@@ -41,7 +41,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
bool rendererIsNeeded(const RenderStyle&) override;
diff --git a/Source/WebCore/svg/SVGTSpanElement.cpp b/Source/WebCore/svg/SVGTSpanElement.cpp
index ad09b2a..16127e8 100644
--- a/Source/WebCore/svg/SVGTSpanElement.cpp
+++ b/Source/WebCore/svg/SVGTSpanElement.cpp
@@ -38,7 +38,7 @@
return adoptRef(*new SVGTSpanElement(tagName, document));
}
-RenderPtr<RenderElement> SVGTSpanElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGTSpanElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGTSpan>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGTSpanElement.h b/Source/WebCore/svg/SVGTSpanElement.h
index eb71ae1..6e528f0 100644
--- a/Source/WebCore/svg/SVGTSpanElement.h
+++ b/Source/WebCore/svg/SVGTSpanElement.h
@@ -32,7 +32,7 @@
private:
SVGTSpanElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
bool rendererIsNeeded(const RenderStyle&) override;
};
diff --git a/Source/WebCore/svg/SVGTextElement.cpp b/Source/WebCore/svg/SVGTextElement.cpp
index 44f0bdb..966afed 100644
--- a/Source/WebCore/svg/SVGTextElement.cpp
+++ b/Source/WebCore/svg/SVGTextElement.cpp
@@ -64,7 +64,7 @@
return matrix;
}
-RenderPtr<RenderElement> SVGTextElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGTextElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGText>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGTextElement.h b/Source/WebCore/svg/SVGTextElement.h
index 5349e6d..db1027e 100644
--- a/Source/WebCore/svg/SVGTextElement.h
+++ b/Source/WebCore/svg/SVGTextElement.h
@@ -34,7 +34,7 @@
private:
SVGTextElement(const QualifiedName&, Document&);
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
};
diff --git a/Source/WebCore/svg/SVGTextPathElement.cpp b/Source/WebCore/svg/SVGTextPathElement.cpp
index b58e601..8f2d2b0 100644
--- a/Source/WebCore/svg/SVGTextPathElement.cpp
+++ b/Source/WebCore/svg/SVGTextPathElement.cpp
@@ -123,7 +123,7 @@
RenderSVGResource::markForLayoutAndParentResourceInvalidation(*renderer);
}
-RenderPtr<RenderElement> SVGTextPathElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGTextPathElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGTextPath>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGTextPathElement.h b/Source/WebCore/svg/SVGTextPathElement.h
index de01993..92e2e81 100644
--- a/Source/WebCore/svg/SVGTextPathElement.h
+++ b/Source/WebCore/svg/SVGTextPathElement.h
@@ -129,7 +129,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
bool childShouldCreateRenderer(const Node&) const override;
bool rendererIsNeeded(const RenderStyle&) override;
diff --git a/Source/WebCore/svg/SVGUseElement.cpp b/Source/WebCore/svg/SVGUseElement.cpp
index 85354b1..8a92634 100644
--- a/Source/WebCore/svg/SVGUseElement.cpp
+++ b/Source/WebCore/svg/SVGUseElement.cpp
@@ -263,7 +263,7 @@
return downcast<SVGElement>(root->firstChild());
}
-RenderPtr<RenderElement> SVGUseElement::createElementRenderer(std::unique_ptr<RenderStyle> style, const RenderTreePosition&)
+RenderPtr<RenderElement> SVGUseElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
{
return createRenderer<RenderSVGTransformableContainer>(*this, WTFMove(style));
}
diff --git a/Source/WebCore/svg/SVGUseElement.h b/Source/WebCore/svg/SVGUseElement.h
index faac929..f4f37f6 100644
--- a/Source/WebCore/svg/SVGUseElement.h
+++ b/Source/WebCore/svg/SVGUseElement.h
@@ -64,7 +64,7 @@
void parseAttribute(const QualifiedName&, const AtomicString&) override;
void svgAttributeChanged(const QualifiedName&) override;
bool willRecalcStyle(Style::Change) override;
- RenderPtr<RenderElement> createElementRenderer(std::unique_ptr<RenderStyle>, const RenderTreePosition&) override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
void toClipPath(Path&) override;
bool haveLoadedRequiredResources() override;
void finishParsingChildren() override;