diff --git a/base/containers/span.h b/base/containers/span.h index fc7f58d8e4be25..9696f33e859eec 100644 --- a/base/containers/span.h +++ b/base/containers/span.h @@ -468,32 +468,33 @@ constexpr void swap(span& lhs, span& rhs) noexcept { } // Type-deducing helpers for constructing a span. -template +template constexpr span make_span(T* data, size_t size) noexcept { return {data, size}; } -template +template constexpr span make_span(T* begin, T* end) noexcept { return {begin, end}; } -template +template constexpr span make_span(T (&array)[N]) noexcept { return array; } -template +template constexpr span make_span(std::array& array) noexcept { return array; } -template +template constexpr span make_span(const std::array& array) noexcept { return array; } -template ()))>, typename = internal::EnableIfSpanCompatibleContainer> @@ -502,6 +503,7 @@ constexpr span make_span(Container& container) noexcept { } template < + int&... ExplicitArgumentBarrier, typename Container, typename T = std::remove_pointer_t< decltype(base::data(std::declval()))>, @@ -511,6 +513,7 @@ constexpr span make_span(const Container& container) noexcept { } template ()))>, @@ -521,6 +524,7 @@ constexpr span make_span(Container& container) noexcept { template < size_t N, + int&... ExplicitArgumentBarrier, typename Container, typename T = std::remove_pointer_t< decltype(base::data(std::declval()))>, @@ -529,7 +533,7 @@ constexpr span make_span(const Container& container) noexcept { return span(container); } -template +template constexpr span make_span(const span& span) noexcept { return span; } diff --git a/cc/tiles/gpu_image_decode_cache.cc b/cc/tiles/gpu_image_decode_cache.cc index 46a1aaadb64b8a..1d795dff25dd6a 100644 --- a/cc/tiles/gpu_image_decode_cache.cc +++ b/cc/tiles/gpu_image_decode_cache.cc @@ -2026,8 +2026,7 @@ void GpuImageDecodeCache::UploadImageIfNecessary(const DrawImage& draw_image, ClientImageTransferCacheEntry::GetNextId(); const gpu::SyncToken decode_sync_token = context_->RasterInterface()->ScheduleImageDecode( - base::make_span(encoded_data->bytes(), - encoded_data->size()), + base::make_span(encoded_data->bytes(), encoded_data->size()), output_size, transfer_cache_id, color_space ? gfx::ColorSpace(*color_space) : gfx::ColorSpace(), image_data->needs_mips); diff --git a/content/browser/devtools/protocol/webauthn_handler.cc b/content/browser/devtools/protocol/webauthn_handler.cc index c16b6567ee5bee..2287be174203b3 100644 --- a/content/browser/devtools/protocol/webauthn_handler.cc +++ b/content/browser/devtools/protocol/webauthn_handler.cc @@ -212,8 +212,7 @@ Response WebAuthnHandler::AddCredential( } else { credential_created = authenticator->AddRegistration( CopyBinaryToVector(credential->GetCredentialId()), - base::make_span( - device::fido_parsing_utils::CreateSHA256Hash(rp_id)), + device::fido_parsing_utils::CreateSHA256Hash(rp_id), CopyBinaryToVector(credential->GetPrivateKey()), credential->GetSignCount()); } diff --git a/content/browser/web_package/signed_exchange_envelope_unittest.cc b/content/browser/web_package/signed_exchange_envelope_unittest.cc index 506580359baa0b..9c23b59874e32c 100644 --- a/content/browser/web_package/signed_exchange_envelope_unittest.cc +++ b/content/browser/web_package/signed_exchange_envelope_unittest.cc @@ -91,10 +91,10 @@ TEST_P(SignedExchangeEnvelopeTest, ParseGoldenFile) { base::StringPiece signature_header_field( contents.data() + signature_header_field_offset, prologue_b.signature_header_field_length()); - const auto cbor_bytes = base::make_span( - contents_bytes + signature_header_field_offset + - prologue_b.signature_header_field_length(), - prologue_b.cbor_header_length()); + const auto cbor_bytes = + base::make_span(contents_bytes + signature_header_field_offset + + prologue_b.signature_header_field_length(), + prologue_b.cbor_header_length()); const base::Optional envelope = SignedExchangeEnvelope::Parse( SignedExchangeVersion::kB3, prologue_b.fallback_url(), diff --git a/ipc/message_view.cc b/ipc/message_view.cc index 4ce1db4bf923a6..49a80878e7a92c 100644 --- a/ipc/message_view.cc +++ b/ipc/message_view.cc @@ -13,9 +13,8 @@ MessageView::MessageView() = default; MessageView::MessageView( const Message& message, base::Optional> handles) - : buffer_view_(base::make_span( - static_cast(message.data()), - message.size())), + : buffer_view_(base::make_span(static_cast(message.data()), + message.size())), handles_(std::move(handles)) {} MessageView::MessageView( diff --git a/media/gpu/vaapi/vaapi_image_decode_accelerator_worker.cc b/media/gpu/vaapi/vaapi_image_decode_accelerator_worker.cc index 6e2e9ff2417211..56de4e8c804800 100644 --- a/media/gpu/vaapi/vaapi_image_decode_accelerator_worker.cc +++ b/media/gpu/vaapi/vaapi_image_decode_accelerator_worker.cc @@ -73,8 +73,7 @@ void DecodeTask( DVLOGF(1) << "No decoder is available for supplied image"; return; } - VaapiImageDecodeStatus status = decoder->Decode( - base::make_span(encoded_data.data(), encoded_data.size())); + VaapiImageDecodeStatus status = decoder->Decode(encoded_data); if (status != VaapiImageDecodeStatus::kSuccess) { DVLOGF(1) << "Failed to decode - status = " << static_cast(status); @@ -177,17 +176,15 @@ VaapiImageDecodeAcceleratorWorker::GetSupportedProfiles() { VaapiImageDecoder* VaapiImageDecodeAcceleratorWorker::GetDecoderForImage( const std::vector& encoded_data) { DCHECK_CALLED_ON_VALID_SEQUENCE(io_sequence_checker_); - auto encoded_data_span = - base::make_span(encoded_data.data(), encoded_data.size()); auto result = decoders_.end(); if (base::FeatureList::IsEnabled( features::kVaapiJpegImageDecodeAcceleration) && - IsJpegImage(encoded_data_span)) { + IsJpegImage(encoded_data)) { result = decoders_.find(gpu::ImageDecodeAcceleratorType::kJpeg); } else if (base::FeatureList::IsEnabled( features::kVaapiWebPImageDecodeAcceleration) && - IsLossyWebPImage(encoded_data_span)) { + IsLossyWebPImage(encoded_data)) { result = decoders_.find(gpu::ImageDecodeAcceleratorType::kWebP); } diff --git a/media/gpu/vaapi/vaapi_jpeg_decoder_unittest.cc b/media/gpu/vaapi/vaapi_jpeg_decoder_unittest.cc index 5202b3914d8b62..29a48b8e343c1a 100644 --- a/media/gpu/vaapi/vaapi_jpeg_decoder_unittest.cc +++ b/media/gpu/vaapi/vaapi_jpeg_decoder_unittest.cc @@ -349,8 +349,7 @@ TEST_P(VaapiJpegDecoderTest, DecodeSucceeds) { std::string jpeg_data; ASSERT_TRUE(base::ReadFileToString(input_file, &jpeg_data)) << "failed to read input data from " << input_file.value(); - const auto encoded_image = base::make_span( - reinterpret_cast(jpeg_data.data()), jpeg_data.size()); + const auto encoded_image = base::as_bytes(base::make_span(jpeg_data)); // Skip the image if the VAAPI driver doesn't claim to support its chroma // subsampling format. However, we expect at least 4:2:0 and 4:2:2 support. @@ -468,8 +467,7 @@ TEST_F(VaapiJpegDecoderTest, DecodeSucceedsForSupportedSizes) { {max_width, max_height}}; for (const auto& test_size : test_sizes) { const std::vector jpeg_data = GenerateJpegImage(test_size); - auto jpeg_data_span = base::make_span( - reinterpret_cast(jpeg_data.data()), jpeg_data.size()); + auto jpeg_data_span = base::as_bytes(base::make_span(jpeg_data)); ASSERT_FALSE(jpeg_data.empty()); std::unique_ptr scoped_image = Decode(jpeg_data_span); ASSERT_TRUE(scoped_image) @@ -513,8 +511,7 @@ TEST_P(VaapiJpegDecoderWithDmaBufsTest, DecodeSucceeds) { std::string jpeg_data; ASSERT_TRUE(base::ReadFileToString(input_file, &jpeg_data)) << "failed to read input data from " << input_file.value(); - const auto encoded_image = base::make_span( - reinterpret_cast(jpeg_data.data()), jpeg_data.size()); + const auto encoded_image = base::as_bytes(base::make_span(jpeg_data)); // Decode into a VAAPI-allocated surface. const VaapiImageDecodeStatus decode_status = decoder_.Decode(encoded_image); @@ -667,10 +664,7 @@ TEST_F(VaapiJpegDecoderTest, DecodeFailsForBelowMinSize) { const std::vector jpeg_data = GenerateJpegImage(test_size); ASSERT_FALSE(jpeg_data.empty()); VaapiImageDecodeStatus status = VaapiImageDecodeStatus::kSuccess; - ASSERT_FALSE(Decode(base::make_span( - reinterpret_cast(jpeg_data.data()), - jpeg_data.size()), - &status)) + ASSERT_FALSE(Decode(base::as_bytes(base::make_span(jpeg_data)), &status)) << "Decode unexpectedly succeeded for size = " << test_size.ToString(); EXPECT_EQ(VaapiImageDecodeStatus::kUnsupportedImage, status); EXPECT_FALSE(decoder_.GetScopedVASurface()); @@ -717,10 +711,7 @@ TEST_F(VaapiJpegDecoderTest, DecodeFailsForAboveMaxSize) { const std::vector jpeg_data = GenerateJpegImage(test_size); ASSERT_FALSE(jpeg_data.empty()); VaapiImageDecodeStatus status = VaapiImageDecodeStatus::kSuccess; - ASSERT_FALSE(Decode(base::make_span( - reinterpret_cast(jpeg_data.data()), - jpeg_data.size()), - &status)) + ASSERT_FALSE(Decode(base::as_bytes(base::make_span(jpeg_data)), &status)) << "Decode unexpectedly succeeded for size = " << test_size.ToString(); EXPECT_EQ(VaapiImageDecodeStatus::kUnsupportedImage, status); EXPECT_FALSE(decoder_.GetScopedVASurface()); @@ -734,10 +725,7 @@ TEST_F(VaapiJpegDecoderTest, DecodeFails) { ASSERT_TRUE(base::ReadFileToString(input_file, &jpeg_data)) << "failed to read input data from " << input_file.value(); VaapiImageDecodeStatus status = VaapiImageDecodeStatus::kSuccess; - ASSERT_FALSE(Decode( - base::make_span( - reinterpret_cast(jpeg_data.data()), jpeg_data.size()), - &status)); + ASSERT_FALSE(Decode(base::as_bytes(base::make_span(jpeg_data)), &status)); EXPECT_EQ(VaapiImageDecodeStatus::kUnsupportedSubsampling, status); EXPECT_FALSE(decoder_.GetScopedVASurface()); } diff --git a/media/gpu/vaapi/vaapi_webp_decoder_unittest.cc b/media/gpu/vaapi/vaapi_webp_decoder_unittest.cc index 623e4d66452a89..5561f7b61202d1 100644 --- a/media/gpu/vaapi/vaapi_webp_decoder_unittest.cc +++ b/media/gpu/vaapi/vaapi_webp_decoder_unittest.cc @@ -138,8 +138,7 @@ TEST_P(VaapiWebPDecoderTest, DecodeAndExportAsNativePixmapDmaBuf) { std::string webp_data; ASSERT_TRUE(base::ReadFileToString(input_file, &webp_data)) << "failed to read input data from " << input_file.value(); - const auto encoded_image = base::make_span( - reinterpret_cast(webp_data.data()), webp_data.size()); + const auto encoded_image = base::as_bytes(base::make_span(webp_data)); // Decode the image using the VA-API and wrap the decoded image in a // DecodedImage object.