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 Framework | Assignee: | 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
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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Darin Adler
Grep for "const Function&" perhaps to find a lot of these?
Darin Adler
Is there a reason this class needs to be named "lambda" and not "function"?
Sam Weinig
(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
<rdar://problem/78407384>