[Webkit-unassigned] [Bug 187971] New: Move-constructing NeverDestroyed should move construct underlying object instead of copy constructing it
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Jul 24 13:43:55 PDT 2018
https://bugs.webkit.org/show_bug.cgi?id=187971
Bug ID: 187971
Summary: Move-constructing NeverDestroyed should move construct
underlying object instead of copy constructing it
Product: WebKit
Version: WebKit Nightly Build
Hardware: All
OS: All
Status: NEW
Severity: Normal
Priority: P2
Component: Web Template Framework
Assignee: webkit-unassigned at lists.webkit.org
Reporter: dbates at webkit.org
Consider the following code taken from attachment #336064 (bug #175784):
static const RenderStyle& hackedDefaultStyle()
{
static auto defaultStyle = makeNeverDestroyed([] {
auto style = RenderStyle::create();
style.setColor(Color { });
style.setTextFillColor(Color { });
style.setTextStrokeColor(Color { });
style.setBackgroundColor(Color { });
style.setTextEmphasisColor(Color { });
return style;
}());
return defaultStyle;
}
This fails to compile on Mac, GTK, and WPE with an error of the form:
[[
/Volumes/Data/EWS/WebKit/WebKitBuild/Release/usr/local/include/wtf/NeverDestroyed.h:55:46: error: call to implicitly-deleted copy constructor of 'WebCore::RenderStyle'
MaybeRelax<T>(new (storagePointer()) T(WTFMove(other)));
^ ~~~~~~~~~~~~~~
In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource411.cpp:7:
./rendering/InlineTextBox.cpp:773:32: note: in instantiation of member function 'WTF::NeverDestroyed<WebCore::RenderStyle>::NeverDestroyed' requested here
static auto defaultStyle = makeNeverDestroyed([] {
^
In file included from /Volumes/Data/EWS/WebKit/WebKitBuild/Release/DerivedSources/WebCore/unified-sources/UnifiedSource411.cpp:2:
In file included from ./rendering/ImageQualityController.cpp:32:
In file included from ./rendering/RenderBoxModelObject.h:28:
In file included from ./rendering/RenderLayerModelObject.h:25:
In file included from ./rendering/RenderElement.h:26:
In file included from ./rendering/RenderObject.h:35:
/Volumes/Data/EWS/WebKit/Source/WebCore/rendering/style/RenderStyle.h:134:5: note: copy constructor is implicitly deleted because 'RenderStyle' has a user-declared move constructor
RenderStyle(RenderStyle&&);
...
]]
<https://webkit-queues.webkit.org/results/7027403>
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180724/24dd6678/attachment.html>
More information about the webkit-unassigned
mailing list