Bug 225878

Summary: Replace non-ownership transfer requiring uses of WTF::Function to use WTF::ScopeLambda to avoid allocation of WTF::Function
Product: WebKit Reporter: Sam Weinig <sam>
Component: Web Template FrameworkAssignee: Nobody <webkit-unassigned>
Status: NEW    
Severity: Normal CC: darin, fpizlo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   

Sam Weinig
Reported 2021-05-17 10:28:13 PDT
Using WTF::Function (or std::function) in cases where are using a functor as an abstraction to allow scope customization, iteration or predicate functions is wasteful. We should instead be using the non-allocating WTF::ScopedLambda. Some examples in WebCore are: - the traverseSubresources() functions on various classes. - readURLsFromPasteboardAsString() in DataTransfer.cpp - Document::forEachMediaElement() - etc.
Attachments
Darin Adler
Comment 1 2021-05-17 23:34:09 PDT
Grep for "const Function&" perhaps to find a lot of these?
Darin Adler
Comment 2 2021-05-17 23:34:31 PDT
Is there a reason this class needs to be named "lambda" and not "function"?
Sam Weinig
Comment 3 2021-05-18 16:23:09 PDT
(In reply to Darin Adler from comment #2) > Is there a reason this class needs to be named "lambda" and not "function"? The patch that added it doesn't give much justification: https://trac.webkit.org/changeset/191705/webkit Phil, any reason you chose "lambda" over "function" here?
Radar WebKit Bug Importer
Comment 4 2021-05-24 10:29:20 PDT
Note You need to log in before you can comment on or make changes to this bug.