[webkit-changes] [WebKit/WebKit] 6d41b0: Switch from WTF::Span to std::span

EWS noreply at github.com
Sat Mar 4 21:16:04 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 6d41b0f74b61f318f8f50a191f4bb5808a507e43
      https://github.com/WebKit/WebKit/commit/6d41b0f74b61f318f8f50a191f4bb5808a507e43
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2023-03-04 (Sat, 04 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/jsc.cpp
    M Source/WTF/wtf/PlatformHave.h
    M Source/WTF/wtf/SHA1.cpp
    M Source/WTF/wtf/SHA1.h
    M Source/WTF/wtf/Span.h
    M Source/WTF/wtf/persistence/PersistentDecoder.cpp
    M Source/WTF/wtf/persistence/PersistentDecoder.h
    M Source/WTF/wtf/text/Base64.cpp
    M Source/WTF/wtf/text/Base64.h
    M Source/WTF/wtf/text/StringBuilder.h
    M Source/WTF/wtf/text/StringImpl.h
    M Source/WTF/wtf/text/StringSearch.h
    M Source/WTF/wtf/text/WTFString.h
    M Source/WebCore/Modules/fetch/FetchResponse.cpp
    M Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp
    M Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp
    M Source/WebCore/Modules/push-api/PushDatabase.cpp
    M Source/WebCore/Modules/push-api/PushMessageCrypto.cpp
    M Source/WebCore/Modules/push-api/cocoa/PushCryptoCocoa.cpp
    M Source/WebCore/Modules/webauthn/AuthenticatorResponseData.h
    M Source/WebCore/Modules/webauthn/cbor/CBORReader.cpp
    M Source/WebCore/Modules/webauthn/cbor/CBORReader.h
    M Source/WebCore/bindings/js/SerializedScriptValue.h
    M Source/WebCore/css/CSSValueList.h
    M Source/WebCore/dom/make_names.pl
    M Source/WebCore/fileapi/NetworkSendQueue.cpp
    M Source/WebCore/html/canvas/CanvasPath.cpp
    M Source/WebCore/html/parser/HTMLDocumentParserFastPath.cpp
    M Source/WebCore/html/shadow/TextControlInnerElements.cpp
    M Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp
    M Source/WebCore/loader/icon/IconLoader.cpp
    M Source/WebCore/page/PageColorSampler.cpp
    M Source/WebCore/platform/SharedBuffer.h
    M Source/WebCore/platform/graphics/ByteArrayPixelBuffer.h
    M Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp
    M Source/WebCore/platform/sql/SQLiteStatement.cpp
    M Source/WebCore/platform/text/TextFlags.cpp
    M Source/WebCore/workers/service/server/RegistrationDatabase.cpp
    M Source/WebCore/xml/XMLErrors.cpp
    M Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp
    M Source/WebKit/Platform/IPC/ArgumentCoders.cpp
    M Source/WebKit/Platform/IPC/ArgumentCoders.h
    M Source/WebKit/Platform/IPC/Encoder.h
    M Source/WebKit/Platform/IPC/StreamConnectionEncoder.h
    M Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp
    M Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp
    M Source/WebKitLegacy/mac/History/BinaryPropertyList.cpp
    M Source/cmake/OptionsCommon.cmake
    M Source/cmake/WebKitCompilerFlags.cmake
    M Tools/Scripts/webkitpy/style/checkers/cpp.py
    M Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py
    M Tools/TestWebKitAPI/Tests/IPC/ArgumentCoderTests.cpp
    M Tools/TestWebKitAPI/Tests/WTF/EmbeddedFixedVector.cpp
    M Tools/TestWebKitAPI/Tests/WTF/RefCountedFixedVector.cpp

  Log Message:
  -----------
  Switch from WTF::Span to std::span
https://bugs.webkit.org/show_bug.cgi?id=253377
<rdar://103182220>

Reviewed by Darin Adler.

On Apple ports of WebKit, switch to use std::span instead of
WTF::Span by creating a template type alias, creating
WTF::makeSpan() to use for both types (since the type alias
can't perform deduction), and implementing wrappers for
WTF::asBytes() and WTF::asWritableBytes().

* Source/JavaScriptCore/jsc.cpp:
(JSC_DEFINE_HOST_FUNCTION):
* Source/WTF/wtf/PlatformHave.h:
* Source/WTF/wtf/SHA1.cpp:
- Include <cstddef> for std::to_integer().
* Source/WTF/wtf/SHA1.h:
(WTF::SHA1::addBytes):
* Source/WTF/wtf/Span.h:
(WTF::makeSpan):
(WTF::asBytes):
(WTF::asWritableBytes):
(makeSpan):
* Source/WTF/wtf/persistence/PersistentDecoder.cpp:
(WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
(WTF::Persistence::Decoder::bufferPointerForDirectRead):
(WTF::Persistence::Decoder::rewind):
(WTF::Persistence::Decoder::decodeNumber):
* Source/WTF/wtf/persistence/PersistentDecoder.h:
(WTF::Persistence::Decoder::currentOffset const):
- Switch to use a span iterator instead of a raw pointer for
  bounds checks.
(): Deleted.
* Source/WTF/wtf/text/Base64.cpp:
(WTF::base64EncodeInternal):
(WTF::base64Decode):
* Source/WTF/wtf/text/Base64.h:
(WTF::StringTypeAdapter<Base64Specification>::writeTo const):
* Source/WTF/wtf/text/StringBuilder.h:
(WTF::StringBuilder::span const):
* Source/WTF/wtf/text/StringImpl.h:
(WTF::StringImpl::tryGetUTF8ForCharacters):
* Source/WTF/wtf/text/StringSearch.h:
(WTF::BoyerMooreHorspoolTable::BoyerMooreHorspoolTable):
* Source/WTF/wtf/text/WTFString.h:
(WTF::String::tryGetUTF8 const):

* Source/WebCore/Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didReceiveData):
(WebCore::FetchResponse::BodyLoader::consumeDataByChunk):
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::addExistingIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedHasIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedPutIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::keyExistsInObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllObjectStoreRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::uncheckedGetIndexRecordForOneKey):
(WebCore::IDBServer::SQLiteIDBBackingStore::getCount):
* Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::bindArguments):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
* Source/WebCore/Modules/push-api/PushDatabase.cpp:
(WebCore::uuidToSpan):
* Source/WebCore/Modules/push-api/PushMessageCrypto.cpp:
(WebCore::PushCrypto::decryptAES128GCMPayload):
(WebCore::PushCrypto::decryptAESGCMPayload):
* Source/WebCore/Modules/push-api/cocoa/PushCryptoCocoa.cpp:
(WebCore::PushCrypto::decryptAES128GCM):
- Stop using span iterators as raw pointers.
* Source/WebCore/Modules/webauthn/AuthenticatorResponseData.h:
(WebCore::encodeArrayBuffer):
* Source/WebCore/Modules/webauthn/cbor/CBORReader.cpp:
(cbor::CBORReader::CBORReader):
(cbor::CBORReader::read):
(cbor::CBORReader::readString):
(cbor::CBORReader::readBytes):
(cbor::CBORReader::canConsume):
(cbor::CBORReader::checkExtraneousData):
(cbor::CBORReader::~CBORReader): Make default.
* Source/WebCore/Modules/webauthn/cbor/CBORReader.h:
- Stop using span iterators as raw pointers in CBORReader.
- Store reference to span instead of begin itertor since both
  begin and end iterators are needed for pointer math.
- Update class to use span iterators to calculate offsets.
* Source/WebCore/bindings/js/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::encode const):
* Source/WebCore/css/CSSValueList.h:
- Include <array> since it's no longer included by <wtf/Span.h>.
* Source/WebCore/dom/make_names.pl:
(printTagNameCppFile):
(printElementNameCppFile):
* Source/WebCore/fileapi/NetworkSendQueue.cpp:
(WebCore::NetworkSendQueue::enqueue):
(WebCore::NetworkSendQueue::processMessages):
* Source/WebCore/html/canvas/CanvasPath.cpp:
(WebCore::CanvasPath::roundRect):
* Source/WebCore/html/parser/HTMLDocumentParserFastPath.cpp:
(WebCore::HTMLFastPathParser::scanText):
* Source/WebCore/html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerTextElement::updateInnerTextElementEditabilityImpl):
* Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::store):
* Source/WebCore/loader/icon/IconLoader.cpp:
(WebCore::IconLoader::notifyFinished):
* Source/WebCore/page/PageColorSampler.cpp:
(WebCore::PageColorSampler::sampleTop):
* Source/WebCore/platform/SharedBuffer.h:
(WebCore::SharedBuffer::dataAsSpanForContiguousData const):
- Add RELEASE_ASSERT() to make sure the data is contiguous when
  creating a span, because it's a bug if not.
- Do not make SharedBuffer a span container since not every
  instance holds a contiguous buffer.
- Instead use dataAsSpanForContiguousData() to create a span.
* Source/WebCore/platform/graphics/ByteArrayPixelBuffer.h:
(WebCore::ByteArrayPixelBuffer::encode const):
* Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp:
(WebCore::MermaidBuilder::span):
* Source/WebCore/platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindBlob):
* Source/WebCore/platform/text/TextFlags.cpp:
(WebCore::computeFeatureSettingsFromVariants):
- Use Vector::span() to match return value of lambda.
* Source/WebCore/workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::doPushChangesWithOpenDatabase):
* Source/WebCore/xml/XMLErrors.cpp:
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):

* Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::writeSizeFile):
* Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp:
(WebKit::readRecordInfoFromFileData):
(WebKit::CacheStorageDiskStore::readRecordFromFileData):
(WebKit::CacheStorageDiskStore::writeRecords):
* Source/WebKit/NetworkProcess/storage/CacheStorageManager.cpp:
(WebKit::writeCachesList):
(WebKit::writeSizeFile):
* Source/WebKit/Platform/IPC/ArgumentCoders.cpp:
(IPC::ArgumentCoder<String>::encode):
* Source/WebKit/Platform/IPC/ArgumentCoders.h:
(IPC::ArgumentCoder<SHA1::Digest>::encode):
* Source/WebKit/Platform/IPC/Encoder.h:
(IPC::Encoder::encodeObject):
* Source/WebKit/Platform/IPC/StreamConnectionEncoder.h:
* Source/WebKit/Shared/Cocoa/SandboxExtensionCocoa.mm:
(WebKit::SandboxExtension::createHandlesForMachLookup):
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::FragmentedSharedBuffer>::encode):
* Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::encodeTypedArray):

* Source/WebKitLegacy/mac/History/BinaryPropertyList.cpp:
(IntegerArray::value_type): Add.
(IntegerArray::integers const): Delete.
(IntegerArray::data const): Rename from integers().
(add):
(IntegerArrayHash::equal):
- Update class to work as a span container.

* Source/cmake/OptionsCommon.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:
- Define HAVE_STD_SPAN based on compiler test.  See also
  PlatformHave.h.

* Tools/Scripts/webkitpy/style/checkers/cpp.py:
(check_wtf_make_span):
(check_style):
(CppChecker):
- Add checks for using 'Span { }' and 'Span()' to require
  makeSpan() instead.
* Tools/Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_wtf_make_span):
- Add tests for the new checks.
* Tools/TestWebKitAPI/Tests/IPC/ArgumentCoderTests.cpp:
(TestWebKitAPI::TYPED_TEST_P):
* Tools/TestWebKitAPI/Tests/WTF/EmbeddedFixedVector.cpp:
* Tools/TestWebKitAPI/Tests/WTF/RefCountedFixedVector.cpp:
- Include <array> since it's no longer included by <wtf/Span.h>.

Canonical link: https://commits.webkit.org/261239@main




More information about the webkit-changes mailing list