<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>251700</bug_id>
          
          <creation_ts>2023-02-03 10:29:01 -0800</creation_ts>
          <short_desc>DisplayList::ItemBuffer wastes a lot of vector capacity</short_desc>
          <delta_ts>2023-02-04 17:07:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>heycam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1930923</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2023-02-03 10:29:01 -0800</bug_when>
    <thetext>Using the patch in bug 186698, and testing on a wikipedia page, we see that DisplayList::ItemBuffer::ItemBuffer() wastes a lot of vector capacity:

Wasted capacity: 31632 bytes (used 0 of 31632 bytes, utilization: 0.00%) - 659 allocations
1   0x2fd3346e7 WTF::VectorBuffer&lt;WebCore::DisplayList::ItemBufferHandle, 2ul, WTF::FastMalloc&gt;::VectorBuffer()
2   0x2fd3313d1 WebCore::DisplayList::ItemBuffer::ItemBuffer()
3   0x2fd33119c WebCore::DisplayList::DisplayList::itemBuffer()
4   0x2fd3311fe WebCore::DisplayList::DisplayList::setItemBufferWritingClient(WebCore::DisplayList::ItemBufferWritingClient*)
5   0x2fd336a1b WebCore::DisplayList::InMemoryDisplayList::InMemoryDisplayList()
6   0x2fd30735a WebCore::FontCascade::displayListForTextRun(WebCore::GraphicsContext&amp;, WebCore::TextRun const&amp;, unsigned int, std::__1::optional&lt;unsigned int&gt;, WebCore::FontCascade::CustomFontNotReadyAction) const
7   0x2fcc5efd4 WebCore::GlyphDisplayListCache::get(void const*, WebCore::FontCascade const&amp;, WebCore::GraphicsContext&amp;, WebCore::TextRun const&amp;)
8   0x2fcdf55a2 WebCore::TextBoxPainter&lt;WebCore::InlineIterator::BoxModernPath&gt;::paintForeground(WebCore::StyledMarkedText const&amp;)
9   0x2fcdf3efe WebCore::TextBoxPainter&lt;WebCore::InlineIterator::BoxModernPath&gt;::paintForegroundAndDecorations()
10  0x2fcdf3656 WebCore::TextBoxPainter&lt;WebCore::InlineIterator::BoxModernPath&gt;::paint()
11  0x2fc7e0b49 WebCore::LayoutIntegration::InlineContentPainter::paintDisplayBox(WebCore::InlineDisplay::Box const&amp;)
12  0x2fc7e0db5 WebCore::LayoutIntegration::InlineContentPainter::paint()
13  0x2fc7e54a8 WebCore::LayoutIntegration::LineLayout::paint(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;, WebCore::RenderInline const*)
14  0x2fcc96d0e WebCore::RenderBlock::paintObject(WebCore::PaintInfo&amp;, WebCore::LayoutPoint const&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930924</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-02-03 10:29:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/105011333&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931125</commentid>
    <comment_count>2</comment_count>
      <attachid>464837</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2023-02-04 12:12:26 -0800</bug_when>
    <thetext>Created attachment 464837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1931154</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-02-04 17:07:17 -0800</bug_when>
    <thetext>Committed 259861@main (b7a8c3d2ff89): &lt;https://commits.webkit.org/259861@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464837.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464837</attachid>
            <date>2023-02-04 12:12:26 -0800</date>
            <delta_ts>2023-02-04 17:07:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-251700-20230204121225.patch</filename>
            <type>text/plain</type>
            <size>1621</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">RnJvbSA2ZmQyZmQzYmQzOWJhMjgzNjJlMDM3ODRhMTgxMDBkZDU1OGU3NzU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTaW1vbiBGcmFzZXIgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CkRhdGU6IFNhdCwgNCBGZWIgMjAyMyAxMjowOToxNyAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIERp
c3BsYXlMaXN0OjpJdGVtQnVmZmVyIHdhc3RlcyBhIGxvdCBvZiB2ZWN0b3IgY2FwYWNpdHkKIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTE3MDAgPHJkYXI6Ly9wcm9i
bGVtLzEwNTAxMTMzMz4KClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhlIFZlY3RvcjxJ
dGVtQnVmZmVySGFuZGxlLCAyPiBJdGVtQnVmZmVyOjptX3JlYWRPbmx5QnVmZmVycyBnZXRzIGFs
bG9jYXRlZCBmb3IgZXZlcnkgR2x5cGhEaXNwbGF5TGlzdENhY2hlCmVudHJ5LCBidXQgaXMgbmV2
ZXIgdXNlZCB0aGVyZS4gSXQncyBhbHNvIHZlcnkgcmFyZWx5IHVzZWQgd2l0aCBHUFUgcHJvY2Vz
cyByZW5kZXJpbmcgKEkgbmV2ZXIgc2F3IHVzZSBvZgptX3JlYWRPbmx5QnVmZmVycyBydW5uaW5n
IE1vdGlvbk1hcmspLCBzbyBnaXZlIGl0IGRlZmF1bHQgY2FwYWNpdHkgMCwgYW5kIGNhcGFjaXR5
IDIgd2hlbiBpdCBkb2VzIGdldCBhbGxvY2F0ZWQuCgoqIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaDoKLS0tCiAuLi4v
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5oICAg
ICAgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmgKaW5kZXggYjMxYmM1ZmQ0
ZTkyLi5mMjE4ZjZhMTNjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmgKQEAgLTUwLDcgKzUwLDcgQEAgc3RydWN0IEl0ZW1CdWZmZXJIYW5kbGUgewogICAgIGJv
b2wgb3BlcmF0b3IhKCkgY29uc3QgeyByZXR1cm4gIWRhdGE7IH0KIH07CiAKLXVzaW5nIEl0ZW1C
dWZmZXJIYW5kbGVzID0gVmVjdG9yPEl0ZW1CdWZmZXJIYW5kbGUsIDI+OwordXNpbmcgSXRlbUJ1
ZmZlckhhbmRsZXMgPSBWZWN0b3I8SXRlbUJ1ZmZlckhhbmRsZSwgMCwgQ3Jhc2hPbk92ZXJmbG93
LCAyPjsKIAogLy8gQW4gSXRlbUhhbmRsZSB3cmFwcyBhIHBvaW50ZXIgdG8gYW4gSXRlbVR5cGUg
Zm9sbG93ZWQgaW1tZWRpYXRlbHkgYnkgYW4gaXRlbSBvZiB0aGF0IHR5cGUuCiAvLyBFYWNoIGl0
ZW0gaGFuZGxlIGRhdGEgcG9pbnRlciBpcyBhbGlnbmVkIHRvIDggYnl0ZXMsIGFuZCB0aGUgaXRl
bSBpdHNlbGYgaXMgYWxzbyBhbGlnbmVkCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>