150 lines
7.1 KiB
Diff
150 lines
7.1 KiB
Diff
From fd977228c791d5cf767a1e5b4ed3596add8ed6d5 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= <zdobersek@igalia.com>
|
|
Date: Thu, 30 Mar 2023 10:36:24 -0700
|
|
Subject: [PATCH] Build fix around std::variant in SourceBrush for
|
|
Clang/libstdc++ https://bugs.webkit.org/show_bug.cgi?id=254742
|
|
|
|
Unreviewed, build fix for the SourceBrush::Brush std::variant construction when
|
|
using Clang with libstdc++.
|
|
|
|
Things get mixed up when using Ref<Pattern> for constructing the variant, with
|
|
the compiler using it as initialization for the LogicalGradient type, the other
|
|
possible type in the variant, which ends up in a compile-time error.
|
|
|
|
This can be avoided by using the in-place tag when constructing the variant in
|
|
the SourceBrush::setPattern() method, specifying which variant-alternative type
|
|
should be used.
|
|
|
|
Similar fix for the same reasons is also needed in the decoding part of the
|
|
ArgumentCoder<std::variant<>> specialization, this being problematic due to the
|
|
SourceBrush::Brush decoding produced for the generated serializers purpose.
|
|
There the variant is constructed with the in-place tag that's based on the index
|
|
value of the alternative.
|
|
|
|
* Source/WebCore/platform/graphics/SourceBrush.cpp:
|
|
(WebCore::SourceBrush::setPattern):
|
|
* Source/WebCore/platform/graphics/SourceBrush.h:
|
|
* Source/WebKit/Platform/IPC/ArgumentCoders.h:
|
|
|
|
Canonical link: https://commits.webkit.org/262339@main
|
|
---
|
|
Source/WebCore/platform/graphics/SourceBrush.cpp | 2 +-
|
|
Source/WebCore/platform/graphics/SourceBrush.h | 3 ++-
|
|
Source/WebKit/Platform/IPC/ArgumentCoders.h | 2 +-
|
|
3 files changed, 4 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
index f42e0d42f534..44135b7706ad 100644
|
|
--- a/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
+++ b/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
@@ -91,7 +91,7 @@ void SourceBrush::setGradient(Ref<Gradient>&& gradient, const AffineTransform& s
|
|
|
|
void SourceBrush::setPattern(Ref<Pattern>&& pattern)
|
|
{
|
|
- m_brush = { WTFMove(pattern) };
|
|
+ m_brush = { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
|
|
}
|
|
|
|
WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush)
|
|
diff --git a/Source/WebCore/platform/graphics/SourceBrush.h b/Source/WebCore/platform/graphics/SourceBrush.h
|
|
index 176b9fc85c18..cd97b82c7444 100644
|
|
--- a/Source/WebCore/platform/graphics/SourceBrush.h
|
|
+++ b/Source/WebCore/platform/graphics/SourceBrush.h
|
|
@@ -42,7 +42,8 @@ class SourceBrush {
|
|
template<typename Decoder> static std::optional<LogicalGradient> decode(Decoder&);
|
|
};
|
|
|
|
- std::variant<LogicalGradient, Ref<Pattern>> brush;
|
|
+ using Variant = std::variant<LogicalGradient, Ref<Pattern>>;
|
|
+ Variant brush;
|
|
};
|
|
|
|
SourceBrush() = default;
|
|
diff --git a/Source/WebKit/Platform/IPC/ArgumentCoders.h b/Source/WebKit/Platform/IPC/ArgumentCoders.h
|
|
index ae37b2145fc2..2d93984e3f36 100644
|
|
--- a/Source/WebKit/Platform/IPC/ArgumentCoders.h
|
|
+++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h
|
|
@@ -743,7 +743,7 @@ template<typename... Types> struct ArgumentCoder<std::variant<Types...>> {
|
|
auto optional = decoder.template decode<typename std::variant_alternative_t<index, std::variant<Types...>>>();
|
|
if (!optional)
|
|
return std::nullopt;
|
|
- return std::make_optional<std::variant<Types...>>(WTFMove(*optional));
|
|
+ return std::make_optional<std::variant<Types...>>(std::in_place_index<index>, WTFMove(*optional));
|
|
}
|
|
return decode(decoder, std::make_index_sequence<index + 1> { }, i);
|
|
} else
|
|
|
|
From 93920b55f52ff8b883296f4845269e2ed746acb3 Mon Sep 17 00:00:00 2001
|
|
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
|
Date: Fri, 31 Mar 2023 12:24:09 -0700
|
|
Subject: [PATCH] Fix build of SourceBrush.cpp
|
|
https://bugs.webkit.org/show_bug.cgi?id=254821
|
|
|
|
Unreviewed build fix.
|
|
|
|
* Source/WebCore/platform/graphics/SourceBrush.cpp:
|
|
(WebCore::SourceBrush::setGradient):
|
|
(WebCore::SourceBrush::setPattern):
|
|
|
|
Canonical link: https://commits.webkit.org/262434@main
|
|
---
|
|
Source/WebCore/platform/graphics/SourceBrush.cpp | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
index 44135b7706ad..5377831d7902 100644
|
|
--- a/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
+++ b/Source/WebCore/platform/graphics/SourceBrush.cpp
|
|
@@ -86,12 +86,12 @@ Pattern* SourceBrush::pattern() const
|
|
|
|
void SourceBrush::setGradient(Ref<Gradient>&& gradient, const AffineTransform& spaceTransform)
|
|
{
|
|
- m_brush = { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
|
|
+ m_brush = Brush { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } };
|
|
}
|
|
|
|
void SourceBrush::setPattern(Ref<Pattern>&& pattern)
|
|
{
|
|
- m_brush = { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
|
|
+ m_brush = Brush { Brush::Variant { std::in_place_type<Ref<Pattern>>, WTFMove(pattern) } };
|
|
}
|
|
|
|
WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush)
|
|
|
|
From 2fd83187cbe7cf7f57f4d6834f6060b00703683b Mon Sep 17 00:00:00 2001
|
|
From: Michael Catanzaro <mcatanzaro@redhat.com>
|
|
Date: Fri, 31 Mar 2023 13:23:45 -0500
|
|
Subject: [PATCH] [GTK] AcceleratedSurfaceDMABuf.cpp does not build on i368
|
|
https://bugs.webkit.org/show_bug.cgi?id=254828
|
|
|
|
Reviewed by NOBODY (OOPS!).
|
|
|
|
* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp:
|
|
(WebKit::AcceleratedSurfaceDMABuf::clientResize):
|
|
---
|
|
.../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
index 2aa33586b317..34cca9f11d62 100644
|
|
--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp
|
|
@@ -130,12 +130,12 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size)
|
|
}
|
|
UnixFileDescriptor backFD(gbm_bo_get_fd(backObject), UnixFileDescriptor::Adopt);
|
|
Vector<EGLAttrib> attributes = {
|
|
- EGL_WIDTH, gbm_bo_get_width(backObject),
|
|
- EGL_HEIGHT, gbm_bo_get_height(backObject),
|
|
- EGL_LINUX_DRM_FOURCC_EXT, gbm_bo_get_format(backObject),
|
|
+ EGL_WIDTH, static_cast<EGLAttrib>(gbm_bo_get_width(backObject)),
|
|
+ EGL_HEIGHT, static_cast<EGLAttrib>(gbm_bo_get_height(backObject)),
|
|
+ EGL_LINUX_DRM_FOURCC_EXT, static_cast<EGLAttrib>(gbm_bo_get_format(backObject)),
|
|
EGL_DMA_BUF_PLANE0_FD_EXT, backFD.value(),
|
|
- EGL_DMA_BUF_PLANE0_OFFSET_EXT, gbm_bo_get_offset(backObject, 0),
|
|
- EGL_DMA_BUF_PLANE0_PITCH_EXT, gbm_bo_get_stride(backObject),
|
|
+ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast<EGLAttrib>(gbm_bo_get_offset(backObject, 0)),
|
|
+ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast<EGLAttrib>(gbm_bo_get_stride(backObject)),
|
|
EGL_NONE
|
|
};
|
|
m_backImage = display.createEGLImage(EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, attributes);
|