Skip to content

Commit f519f64

Browse files
cdumezphiln
authored andcommitted
Reduce use of Vector::uncheckedAppend() throughout the code base
https://bugs.webkit.org/show_bug.cgi?id=262602 Reviewed by Brent Fulgham. * Source/WTF/wtf/cf/LanguageCF.cpp: (WTF::platformUserPreferredLanguages): * Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm: (WebCore::ShapeDetection::BarcodeDetectorImpl::getSupportedFormats): * Source/WebCore/Modules/WebGPU/GPUQueue.cpp: (WebCore::GPUQueue::submit): * Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.cpp: (WebCore::GPURenderPassEncoder::executeBundles): * Source/WebCore/Modules/WebGPU/Implementation/WebGPUDeviceImpl.cpp: (WebCore::WebGPU::DeviceImpl::createBindGroupLayout): (WebCore::WebGPU::convertToBacking): * Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp: (WebCore::listDirectoryWithMetadata): (WebCore::toFileSystemEntries): * Source/WebCore/Modules/gamepad/Gamepad.cpp: * Source/WebCore/Modules/highlight/Highlight.cpp: (WebCore::Highlight::Highlight): * Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp: (WebCore::toLibWebRTCMediaEndpointTransceiverState): (WebCore::transceiverStatesFromPeerConnection): * Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp: (WebCore::LibWebRTCRtpTransformableFrame::audioMetadata const): Canonical link: https://commits.webkit.org/268874@main
1 parent c5269d8 commit f519f64

4 files changed

Lines changed: 19 additions & 29 deletions

File tree

Source/WTF/wtf/cf/LanguageCF.cpp

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,10 @@ Vector<String> platformUserPreferredLanguages(ShouldMinimizeLanguages shouldMini
101101
if (!platformLanguagesCount)
102102
return { "en"_s };
103103

104-
Vector<String> languages;
105-
languages.reserveInitialCapacity(platformLanguagesCount);
106-
for (CFIndex i = 0; i < platformLanguagesCount; i++) {
104+
Vector<String> languages(platformLanguagesCount, [&](size_t i) {
107105
auto platformLanguage = static_cast<CFStringRef>(CFArrayGetValueAtIndex(platformLanguages.get(), i));
108-
languages.uncheckedAppend(httpStyleLanguageCode(platformLanguage, shouldMinimizeLanguages));
109-
}
106+
return httpStyleLanguageCode(platformLanguage, shouldMinimizeLanguages);
107+
});
110108

111109
LOG_WITH_STREAM(Language, stream << "After passing through httpStyleLanguageCode: " << languages);
112110

Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,12 @@ static ExceptionOr<Vector<ListedChild>> listDirectoryWithMetadata(const String&
6262
return Exception { NotFoundError, "Path no longer exists or is no longer a directory"_s };
6363

6464
auto childNames = FileSystem::listDirectory(fullPath);
65-
Vector<ListedChild> listedChildren;
66-
listedChildren.reserveInitialCapacity(childNames.size());
67-
for (auto& childName : childNames) {
65+
return WTF::compactMap(WTFMove(childNames), [&](auto&& childName) -> std::optional<ListedChild> {
6866
auto childPath = FileSystem::pathByAppendingComponent(fullPath, childName);
69-
auto fileType = fileTypeIgnoringHiddenFiles(childPath);
70-
if (!fileType)
71-
continue;
72-
listedChildren.uncheckedAppend(ListedChild { childName, *fileType });
73-
}
74-
return listedChildren;
67+
if (auto fileType = fileTypeIgnoringHiddenFiles(childPath))
68+
return ListedChild { WTFMove(childName), *fileType };
69+
return std::nullopt;
70+
});
7571
}
7672

7773
static ExceptionOr<Vector<Ref<FileSystemEntry>>> toFileSystemEntries(ScriptExecutionContext& context, DOMFileSystem& fileSystem, ExceptionOr<Vector<ListedChild>>&& listedChildren, const String& parentVirtualPath)
@@ -80,22 +76,18 @@ static ExceptionOr<Vector<Ref<FileSystemEntry>>> toFileSystemEntries(ScriptExecu
8076
if (listedChildren.hasException())
8177
return listedChildren.releaseException();
8278

83-
Vector<Ref<FileSystemEntry>> entries;
84-
entries.reserveInitialCapacity(listedChildren.returnValue().size());
85-
for (auto& child : listedChildren.returnValue()) {
79+
return WTF::compactMap(listedChildren.returnValue(), [&](auto& child) -> RefPtr<FileSystemEntry> {
8680
String virtualPath = parentVirtualPath + "/" + child.filename;
8781
switch (child.type) {
8882
case FileSystem::FileType::Regular:
89-
entries.uncheckedAppend(FileSystemFileEntry::create(context, fileSystem, virtualPath));
90-
break;
83+
return FileSystemFileEntry::create(context, fileSystem, virtualPath);
9184
case FileSystem::FileType::Directory:
92-
entries.uncheckedAppend(FileSystemDirectoryEntry::create(context, fileSystem, virtualPath));
93-
break;
85+
return FileSystemDirectoryEntry::create(context, fileSystem, virtualPath);
9486
default:
9587
break;
9688
}
97-
}
98-
return entries;
89+
return nullptr;
90+
});
9991
}
10092

10193
// https://wicg.github.io/entries-api/#name

Source/WebCore/Modules/gamepad/Gamepad.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ Gamepad::Gamepad(const PlatformGamepad& platformGamepad)
4343
, m_axes(platformGamepad.axisValues().size(), 0.0)
4444
{
4545
unsigned buttonCount = platformGamepad.buttonValues().size();
46-
m_buttons.reserveInitialCapacity(buttonCount);
47-
for (unsigned i = 0; i < buttonCount; ++i)
48-
m_buttons.uncheckedAppend(GamepadButton::create());
46+
m_buttons = Vector<Ref<GamepadButton>>(buttonCount, [](size_t) {
47+
return GamepadButton::create();
48+
});
4949
}
5050

5151
Gamepad::~Gamepad() = default;

Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCRtpTransformableFrame.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,9 @@ RTCEncodedAudioFrameMetadata LibWebRTCRtpTransformableFrame::audioMetadata() con
8888
auto* audioFrame = static_cast<webrtc::TransformableAudioFrameInterface*>(m_rtcFrame.get());
8989
auto& header = audioFrame->GetHeader();
9090
if (header.numCSRCs) {
91-
cssrcs.reserveInitialCapacity(header.numCSRCs);
92-
for (size_t cptr = 0; cptr < header.numCSRCs; ++cptr)
93-
cssrcs.uncheckedAppend(header.arrOfCSRCs[cptr]);
91+
cssrcs = Vector<uint32_t>(header.numCSRCs, [&](size_t cptr) {
92+
return header.arrOfCSRCs[cptr];
93+
});
9494
}
9595
}
9696
return { m_rtcFrame->GetSsrc(), WTFMove(cssrcs) };

0 commit comments

Comments
 (0)