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>