Bug 254821

Summary: Fix build of SourceBrush.cpp
Product: WebKit Reporter: Michael Catanzaro <mcatanzaro>
Component: WebCore Misc.Assignee: Michael Catanzaro <mcatanzaro>
Status: RESOLVED FIXED    
Severity: Normal CC: mcatanzaro, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=254742

Description Michael Catanzaro 2023-03-31 09:20:13 PDT
Can't build SourceBrush.cpp with GCC 13:

In file included from /builddir/build/BUILD/webkitgtk-2.41.1/redhat-linux-build/webkitgtk-6.0/WebCore/DerivedSources/unified-sources/UnifiedSource-3c72abbe-35.cpp:4:
/builddir/build/BUILD/webkitgtk-2.41.1/Source/WebCore/platform/graphics/SourceBrush.cpp: In member function 'void WebCore::SourceBrush::setGradient(WTF::Ref<WebCore::Gradient>&&, const WebCore::AffineTransform&)':
/builddir/build/BUILD/webkitgtk-2.41.1/Source/WebCore/platform/graphics/SourceBrush.cpp:89:82: error: converting to 'std::optional<WebCore::SourceBrush::Brush>' from initializer list would use explicit constructor 'constexpr std::optional<_Tp>::optional(_Up&&) [with _Up = WebCore::SourceBrush::Brush::LogicalGradient; typename std::enable_if<__and_v<std::__not_<std::is_same<std::optional<_Tp>, typename std::remove_cv<typename std::remove_reference<_Iter>::type>::type> >, std::__not_<std::is_same<std::in_place_t, typename std::remove_cv<typename std::remove_reference<_Iter>::type>::type> >, std::is_constructible<_Tp, _Up>, std::__not_<std::is_convertible<_Iter, _Iterator> > >, bool>::type <anonymous> = false; _Tp = WebCore::SourceBrush::Brush]'
   89 |     m_brush = { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
      |                                                                                  ^
/builddir/build/BUILD/webkitgtk-2.41.1/Source/WebCore/platform/graphics/SourceBrush.cpp: In member function 'void WebCore::SourceBrush::setPattern(WTF::Ref<WebCore::Pattern>&&)':
/builddir/build/BUILD/webkitgtk-2.41.1/Source/WebCore/platform/graphics/SourceBrush.cpp:94:87: error: converting to 'std::optional<WebCore::SourceBrush::Brush>' from initializer list would use explicit constructor 'constexpr std::optional<_Tp>::optional(_Up&&) [with _Up = std::variant<WebCore::SourceBrush::Brush::LogicalGradient, WTF::Ref<WebCore::Pattern, WTF::RawPtrTraits<WebCore::Pattern> > >; typename std::enable_if<__and_v<std::__not_<std::is_same<std::optional<_Tp>, typename std::remove_cv<typename std::remove_reference<_Iter>::type>::type> >, std::__not_<std::is_same<std::in_place_t, typename std::remove_cv<typename std::remove_reference<_Iter>::type>::type> >, std::is_constructible<_Tp, _Up>, std::__not_<std::is_convertible<_Iter, _Iterator> > >, bool>::type <anonymous> = false; _Tp = WebCore::SourceBrush::Brush]'
   94 |     m_brush = { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
      |                                                                                       ^
Comment 1 Michael Catanzaro 2023-03-31 09:22:22 PDT
262339@main is not enough to fix this.
Comment 2 Michael Catanzaro 2023-03-31 11:22:51 PDT
Pull request: https://github.com/WebKit/WebKit/pull/12248
Comment 3 EWS 2023-03-31 12:25:47 PDT
Committed 262434@main (93920b55f52f): <https://commits.webkit.org/262434@main>

Reviewed commits have been landed. Closing PR #12248 and removing active labels.
Comment 4 Radar WebKit Bug Importer 2023-03-31 12:26:15 PDT
<rdar://problem/107483093>