Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f073c579307b9ec68d39da3ef4670796dd05894f
https://github.com/WebKit/WebKit/commit/f073c579307b9ec68d39da3ef4670796dd05894f
Author: Alex Christensen <[email protected]>
Date: 2024-06-19 (Wed, 19 Jun 2024)
Changed paths:
M Source/WTF/wtf/Vector.h
M Source/WebCore/crypto/cocoa/CryptoKeyOKPCocoa.cpp
M Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp
M Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp
Log Message:
-----------
Remove Vector's non-template span constructor
https://bugs.webkit.org/show_bug.cgi?id=275638
rdar://130130388
Reviewed by Sam Weinig.
A std::span can be constructed from a range, so when any compiler is using
Microsoft's STL
using C++23 and compiles a file that includes IDBKeyData.h, it causes a
confusing compiler
error because the std::variant implementation checks
std::is_trivially_move_constructible
on all the types, which tries to instantiate the move constructor of each type,
which finds
the std::span constructor of Vector that is not a templatized constructor so it
is not a
substitution error, it is a compiler error. The constructor was only there to
help with
constructing Vectors from std::arrays, so instead we just add a template
constructor that
takes a std::array and makes a std::span from it. This covers all the uses
except 2 in
CryptoKeyOKPCocoa.cpp where we were trying to make a Vector from a uint8[32] so
for those
cases we just explicitly make a std::span and 2 in
{Audio,Video}EncoderGStreamer.cpp where we need
to explicitly call the std::span constructor to make an optional vector.
I think this is the second to last blocker to us adopting C++23.
* Source/WTF/wtf/Vector.h:
(WTF::Vector::Vector):
* Source/WebCore/crypto/cocoa/CryptoKeyOKPCocoa.cpp:
(WebCore::CryptoKeyOKP::platformGeneratePair):
* Source/WebCore/platform/audio/gstreamer/AudioEncoderGStreamer.cpp:
(WebCore::GStreamerInternalAudioEncoder::GStreamerInternalAudioEncoder):
Canonical link: https://commits.webkit.org/280183@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes