[Webkit-unassigned] [Bug 186470] New: SubresourceLoader::willSendRequestInternal() creates some WTF::Functions which are over 700 bytes big

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Jun 9 22:41:33 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=186470

            Bug ID: 186470
           Summary: SubresourceLoader::willSendRequestInternal() creates
                    some WTF::Functions which are over 700 bytes big
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Page Loading
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: simon.fraser at apple.com
                CC: beidson at apple.com

In this call stack:

* thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 8.1
  * frame #0: 0x0000000114d8cc5c JavaScriptCore`WTF::fastMalloc(size=728) at FastMalloc.cpp:272
    frame #1: 0x0000000106323845 WebCore`WTF::Function<void (WebCore::ResourceRequest&&)>::CallableWrapperBase::operator new(size=728) at Function.h:83
    frame #2: 0x0000000107cc14b6 WebCore`WTF::Function<void (WebCore::ResourceRequest&&)>::Function<WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&), void>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) [inlined] std::__1::__unique_if<WTF::Function<void (WebCore::ResourceRequest&&)>::CallableWrapper<WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)> >::__unique_single std::__1::make_unique<WTF::Function<void (__args=0x00007ffeefbf5e18)>::CallableWrapper<WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)>, WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) at memory:3032
    frame #3: 0x0000000107cc14b1 WebCore`WTF::Function<void (WebCore::ResourceRequest&&)>::Function<WebCore::SubresourceLoader::willSendRequestInternal(this=0x00007ffeefbf5df8, callable=0x00007ffeefbf5e18)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&), void>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) at Function.h:43
    frame #4: 0x0000000107cc145d WebCore`WTF::Function<void (WebCore::ResourceRequest&&)>::Function<WebCore::SubresourceLoader::willSendRequestInternal(this=0x00007ffeefbf5df8, callable=0x00007ffeefbf5e18)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&), void>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) at Function.h:44
    frame #5: 0x0000000107cc1410 WebCore`WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>::CompletionHandler<WebCore::SubresourceLoader::willSendRequestInternal(this=0x00007ffeefbf5df8, callable=0x00007ffeefbf5e18)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&), void>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) at CompletionHandler.h:42
    frame #6: 0x0000000107cc13ad WebCore`WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>::CompletionHandler<WebCore::SubresourceLoader::willSendRequestInternal(this=0x00007ffeefbf5df8, callable=0x00007ffeefbf5e18)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&), void>(WebCore::SubresourceLoader::willSendRequestInternal(WebCore::ResourceRequest&&, WebCore::ResourceResponse const&, WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&)::'lambda'(WebCore::ResourceRequest&&)&&) at CompletionHandler.h:43
    frame #7: 0x0000000107cb84f0 WebCore`WebCore::SubresourceLoader::willSendRequestInternal(this=0x00007ffeefbf6b40, completionHandler=0x00007ffeefbf6e88, newRequest=0x00007ffeefbf7580)>&&)::$_0::operator()(WTF::CompletionHandler<void (WebCore::ResourceRequest&&)>&&, WebCore::ResourceRequest&&) at SubresourceLoader.cpp:193
    frame #8: 0x0000000107cb7a2b WebCore`WebCore::SubresourceLoader::willSendRequestInternal(this=0x0000000161001000, newRequest=0x00007ffeefbf7580, redirectResponse=0x00007ffeefbf6eb0, completionHandler=0x00007ffeefbf6e88)>&&) at SubresourceLoader.cpp:272


the WTF::Function<void (WebCore::ResourceRequest&&)>::CallableWrapperBase is 728 bytes big. This seems really large for a WTF::Function.

I think it's because it's capturing a ResourceResponse (696 bytes) by value. Is this intentional, or can it pass it by reference?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180610/e8457a48/attachment-0001.html>


More information about the webkit-unassigned mailing list