<?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>80706</bug_id>
          
          <creation_ts>2012-03-09 09:48:53 -0800</creation_ts>
          <short_desc>Improve ContainerNode&apos;s collectNodes() performance</short_desc>
          <delta_ts>2025-07-27 07:25:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly 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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>rreno</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574966</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 09:48:53 -0800</bug_when>
    <thetext>This seems to be causing regressions in Chromium&apos;s dom_perf suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574985</commentid>
    <comment_count>1</comment_count>
      <attachid>131056</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 10:22:14 -0800</bug_when>
    <thetext>Created attachment 131056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574986</commentid>
    <comment_count>2</comment_count>
      <attachid>131056</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 10:23:31 -0800</bug_when>
    <thetext>Comment on attachment 131056
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131056&amp;action=review

&gt; Source/WebCore/dom/ContainerNode.cpp:68
&gt; +    size_t newSize = nodes.size();
&gt; +    for (Node* child = node-&gt;firstChild(); child; child = child-&gt;nextSibling())
&gt; +        newSize++;

There&apos;s already a function that does.  We might need to change the type of |node| to ContainerNode to see it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575000</commentid>
    <comment_count>3</comment_count>
      <attachid>131056</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 10:43:19 -0800</bug_when>
    <thetext>Comment on attachment 131056
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131056&amp;action=review

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:68
&gt;&gt; +        newSize++;
&gt; 
&gt; There&apos;s already a function that does.  We might need to change the type of |node| to ContainerNode to see it.

childNodeCount</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575007</commentid>
    <comment_count>4</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 10:58:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 131056 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131056&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContainerNode.cpp:68
&gt; &gt; +    size_t newSize = nodes.size();
&gt; &gt; +    for (Node* child = node-&gt;firstChild(); child; child = child-&gt;nextSibling())
&gt; &gt; +        newSize++;
&gt; 
&gt; There&apos;s already a function that does.  We might need to change the type of |node| to ContainerNode to see it.

Unfortunately, that requires changing collectTargetNodes(), and a number of call sites pass in a plain ol&apos; Node to collectTargetNodes() (which can&apos;t be blindly downcast, I presume).

I could move childNodeCount() up to Node, but considering this is just a speculative fix for which I&apos;d like to get some data off the perf bots, maybe we could try it as-is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575017</commentid>
    <comment_count>5</comment_count>
      <attachid>131056</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 11:04:31 -0800</bug_when>
    <thetext>Comment on attachment 131056
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131056&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:68
&gt;&gt;&gt;&gt; +        newSize++;
&gt;&gt;&gt; 
&gt;&gt;&gt; There&apos;s already a function that does.  We might need to change the type of |node| to ContainerNode to see it.
&gt;&gt; 
&gt;&gt; childNodeCount
&gt; 
&gt; Unfortunately, that requires changing collectTargetNodes(), and a number of call sites pass in a plain ol&apos; Node to collectTargetNodes() (which can&apos;t be blindly downcast, I presume).
&gt; 
&gt; I could move childNodeCount() up to Node, but considering this is just a speculative fix for which I&apos;d like to get some data off the perf bots, maybe we could try it as-is?

All nodes that have children are ContainerNodes so caller can either downcast the pointer or never call this function depending on the type of the node.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575036</commentid>
    <comment_count>6</comment_count>
      <attachid>131065</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 11:46:01 -0800</bug_when>
    <thetext>Created attachment 131065
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575044</commentid>
    <comment_count>7</comment_count>
      <attachid>131065</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 11:56:16 -0800</bug_when>
    <thetext>Comment on attachment 131065
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131065&amp;action=review

&gt; Source/WebCore/dom/ContainerNode.cpp:78
&gt; -    collectNodes(node, nodes);
&gt; +    if (!node-&gt;isContainerNode())
&gt; +        return;

node is a DocumentFragment (which inherits from ContainerNode) at this point so there&apos;s no need to call isContainerNode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575070</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 12:18:21 -0800</bug_when>
    <thetext>As I&apos;ve privately told you, bumping up the initial capacity will probably buy us more performance than allocating the entire buffer up front.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575109</commentid>
    <comment_count>9</comment_count>
      <attachid>131081</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 12:54:32 -0800</bug_when>
    <thetext>Created attachment 131081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575132</commentid>
    <comment_count>10</comment_count>
      <attachid>131081</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-09 13:05:44 -0800</bug_when>
    <thetext>Comment on attachment 131081
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131081&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        Covered by existing tests.

You need to explain what tests this improves performance on.

&gt; Source/WebCore/dom/ContainerNode.cpp:66
&gt; +    nodes.reserveCapacity(nodes.size() + node-&gt;childNodeCount());

I believe childNodeCount() walks all the node pointers... but I could imagine avoiding multiple mallocs would be faster.

&gt; Source/WebCore/dom/ContainerNode.cpp:77
&gt; -    collectNodes(node, nodes);
&gt; +    collectNodes(static_cast&lt;ContainerNode*&gt;(node), nodes);

This doesn&apos;t seem safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575149</commentid>
    <comment_count>11</comment_count>
      <attachid>131081</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 13:18:38 -0800</bug_when>
    <thetext>Comment on attachment 131081
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131081&amp;action=review

&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:77
&gt;&gt; +    collectNodes(static_cast&lt;ContainerNode*&gt;(node), nodes);
&gt; 
&gt; This doesn&apos;t seem safe.

This is okay because node is a DocumentFragment at this point. See line 73 :)
But it might be better to cast it to DocumentFragment for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575152</commentid>
    <comment_count>12</comment_count>
      <attachid>131081</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-03-09 13:22:37 -0800</bug_when>
    <thetext>Comment on attachment 131081
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131081&amp;action=review

&gt;&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:77
&gt;&gt;&gt; +    collectNodes(static_cast&lt;ContainerNode*&gt;(node), nodes);
&gt;&gt; 
&gt;&gt; This doesn&apos;t seem safe.
&gt; 
&gt; This is okay because node is a DocumentFragment at this point. See line 73 :)
&gt; But it might be better to cast it to DocumentFragment for clarity.

Ah yes, I had read the above as the DocumentFramgment-only special case, missed the !=.  You&apos;re right though, casing to DocumentFragment would probably be more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575261</commentid>
    <comment_count>13</comment_count>
      <attachid>131081</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 14:50:10 -0800</bug_when>
    <thetext>Comment on attachment 131081
Patch

Please update the ChangeLog before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575265</commentid>
    <comment_count>14</comment_count>
      <attachid>131118</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 14:54:51 -0800</bug_when>
    <thetext>Created attachment 131118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575266</commentid>
    <comment_count>15</comment_count>
      <attachid>131081</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 14:55:47 -0800</bug_when>
    <thetext>Comment on attachment 131081
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131081&amp;action=review

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        Covered by existing tests.
&gt; 
&gt; You need to explain what tests this improves performance on.

Done.  Note that this is a speculative fix:  I&apos;m going to land it and evalute it based on the listed tests.   If there&apos;s no improvement, I&apos;ll revert.

&gt;&gt;&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:77
&gt;&gt;&gt;&gt; +    collectNodes(static_cast&lt;ContainerNode*&gt;(node), nodes);
&gt;&gt;&gt; 
&gt;&gt;&gt; This doesn&apos;t seem safe.
&gt;&gt; 
&gt;&gt; This is okay because node is a DocumentFragment at this point. See line 73 :)
&gt;&gt; But it might be better to cast it to DocumentFragment for clarity.
&gt; 
&gt; Ah yes, I had read the above as the DocumentFramgment-only special case, missed the !=.  You&apos;re right though, casing to DocumentFragment would probably be more clear.

OK, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575267</commentid>
    <comment_count>16</comment_count>
      <attachid>131118</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-09 14:55:54 -0800</bug_when>
    <thetext>Comment on attachment 131118
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=131118&amp;action=review

&gt; Source/WebCore/ChangeLog:9
&gt; +        Covered by existing tests.  Performance will be evaluated based on

Nit: we use one space after period.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575395</commentid>
    <comment_count>17</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-09 18:23:30 -0800</bug_when>
    <thetext>Committed r110358: &lt;http://trac.webkit.org/changeset/110358&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575521</commentid>
    <comment_count>18</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-10 08:14:11 -0800</bug_when>
    <thetext>Result:  the tests of interest showed no change (positive or negative) after this CL, so I&apos;m going to revert it.

e.g., http://build.chromium.org/f/chromium/perf/linux-release-webkit-latest/bloat-http/report.html?history=150&amp;rev=-1

(change corresponds to Chrome r125985 on that chart).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575526</commentid>
    <comment_count>19</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-10 09:19:04 -0800</bug_when>
    <thetext>Rolled out in http://trac.webkit.org/changeset/110378.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578033</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 17:28:18 -0700</bug_when>
    <thetext>I&apos;ve looked into how many nodes are typically inserted by the following diff:

ndex: Source/WebCore/dom/ContainerNode.cpp
===================================================================
--- Source/WebCore/dom/ContainerNode.cpp	(revision 110541)
+++ Source/WebCore/dom/ContainerNode.cpp	(working copy)
@@ -65,6 +65,7 @@
 {
     for (Node* child = node-&gt;firstChild(); child; child = child-&gt;nextSibling())
         nodes.append(child);
+    fprintf(stderr, &quot;[%ld]\n&quot;, nodes.size());
 }

and browsed on popular websites like facebook, twitter, gmail, etc...

sample size: 188272

Statistics ignoring entries with 0s and 1s:
mean: 4.41114811377
std: 3.31585908742
min: 2
max: 151

nodes.size() &gt; 5: 9908 5.26%
nodes.size() &gt; 10: 2471 1.31%
nodes.size() &gt; 11: 915 0.49%
nodes.size() &gt; 12: 863 0.46%
nodes.size() &gt; 13: 834 0.44%
nodes.size() &gt; 15: 154 0.082%

11 is probably a good number to use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578047</commentid>
    <comment_count>21</comment_count>
      <attachid>131762</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 17:36:26 -0700</bug_when>
    <thetext>Created attachment 131762
Increases the stack allocated buffer size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578064</commentid>
    <comment_count>22</comment_count>
      <attachid>131762</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-13 18:05:52 -0700</bug_when>
    <thetext>Comment on attachment 131762
Increases the stack allocated buffer size

View in context: https://bugs.webkit.org/attachment.cgi?id=131762&amp;action=review

&gt; Source/WebCore/dom/ContainerNode.cpp:58
&gt; +typedef Vector&lt;RefPtr&lt;Node&gt;, 11&gt; NodeVector;

You should probably add a comment explaining how you arrived at this number.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578071</commentid>
    <comment_count>23</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 18:16:03 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (From update of attachment 131762 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131762&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ContainerNode.cpp:58
&gt; &gt; +typedef Vector&lt;RefPtr&lt;Node&gt;, 11&gt; NodeVector;
&gt; 
&gt; You should probably add a comment explaining how you arrived at this number.

We don&apos;t normally add that kind of comment in the code. Instead, we tend to document those things in the change log.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578291</commentid>
    <comment_count>24</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 03:35:39 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (From update of attachment 131762 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=131762&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/ContainerNode.cpp:58
&gt; &gt; &gt; +typedef Vector&lt;RefPtr&lt;Node&gt;, 11&gt; NodeVector;
&gt; &gt; 
&gt; &gt; You should probably add a comment explaining how you arrived at this number.
&gt; 
&gt; We don&apos;t normally add that kind of comment in the code. Instead, we tend to document those things in the change log.

My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578487</commentid>
    <comment_count>25</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 09:29:54 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.

e.g.
http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSStyleSelector.cpp#L1143

As much as I understand where you&apos;re coming from, WebKit has a very different policy and culture from Google/Chromium. Please respect that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578550</commentid>
    <comment_count>26</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 10:48:32 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #24)
&gt; &gt; My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.
&gt; 
&gt; e.g.
&gt; http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSStyleSelector.cpp#L1143

static const unsigned cStyleSearchThreshold = 10;  ?

This seems to be an example of a descriptive variable name (or at least, an attempt).  If you&apos;d do that in this patch, I think it would be an improvement, although I still think an explanation of how the value was derived wouldn&apos;t be out of place.

&gt; As much as I understand where you&apos;re coming from, WebKit has a very different policy and culture from Google/Chromium. Please respect that.

That&apos;s exactly what I&apos;m attempting to do (which is tricky, since this is not actually addressed in the coding guidelines).  Here&apos;s a quote from Darin Adler which I think is relevant to this case:

&quot;In general my preference is to have comments that say things that the code does not. Many header comments I have seen repeat things already said by the names and signatures of functions. Comments that answer questions such as &quot;why&quot; and that are brief would make a good addition, even to a header file.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578606</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 11:45:04 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (In reply to comment #25)
&gt; &gt; (In reply to comment #24)
&gt; &gt; &gt; My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.
&gt; &gt; 
&gt; &gt; e.g.
&gt; &gt; http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSStyleSelector.cpp#L1143
&gt; 
&gt; static const unsigned cStyleSearchThreshold = 10;  ?
&gt; 
&gt; This seems to be an example of a descriptive variable name (or at least, an attempt).  If you&apos;d do that in this patch, I think it would be an improvement, although I still think an explanation of how the value was derived wouldn&apos;t be out of place.

In this case, a descriptive variable name helps because the semantics isn&apos;t clear from just seeing the value 10. However, in my patch, the semantics of 11 is vacuously clear; it&apos;s the initial size of the stack allocated buffer. Anyone who can read the code that uses Vector understands this instantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578609</commentid>
    <comment_count>28</comment_count>
      <attachid>131762</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-14 11:51:28 -0700</bug_when>
    <thetext>Comment on attachment 131762
Increases the stack allocated buffer size

r=me. You could just make it even bigger. Looks like this type is just a temporary and the stack allocated size is essentially free.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578615</commentid>
    <comment_count>29</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-03-14 11:56:49 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #26)
&gt; &gt; (In reply to comment #25)
&gt; &gt; &gt; (In reply to comment #24)
&gt; &gt; &gt; &gt; My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.
&gt; &gt; &gt; 
&gt; &gt; &gt; e.g.
&gt; &gt; &gt; http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSStyleSelector.cpp#L1143
&gt; &gt; 
&gt; &gt; static const unsigned cStyleSearchThreshold = 10;  ?
&gt; &gt; 
&gt; &gt; This seems to be an example of a descriptive variable name (or at least, an attempt).  If you&apos;d do that in this patch, I think it would be an improvement, although I still think an explanation of how the value was derived wouldn&apos;t be out of place.
&gt; 
&gt; In this case, a descriptive variable name helps because the semantics isn&apos;t clear from just seeing the value 10. However, in my patch, the semantics of 11 is vacuously clear; it&apos;s the initial size of the stack allocated buffer. Anyone who can read the code that uses Vector understands this instantly.

Again, you&apos;re missing the point.  They&apos;ll understand the &quot;what&quot; but not the &quot;why&quot;.

If it&apos;s still unclear to you why code peppered with inexplicable literals is not maintainable, I&apos;ll just leave someone else to r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578617</commentid>
    <comment_count>30</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-03-14 11:57:51 -0700</bug_when>
    <thetext>Also the patch is sufficiently self document as-is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578697</commentid>
    <comment_count>31</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-14 13:18:55 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; Also the patch is sufficiently self document as-is.

Agreed. I&apos;d probably go with inlineCapacity=16 myself to get a more &quot;rounded&quot; number. Shouldn&apos;t matter if these are never used as member variables.

LGTM regardless.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578963</commentid>
    <comment_count>32</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 17:11:20 -0700</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/110797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578965</commentid>
    <comment_count>33</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 17:11:40 -0700</bug_when>
    <thetext>Oops, wrong bug :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578971</commentid>
    <comment_count>34</comment_count>
      <attachid>131762</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-14 17:18:50 -0700</bug_when>
    <thetext>Comment on attachment 131762
Increases the stack allocated buffer size

Rejecting attachment 131762 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ti Koiv...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Parsed 2 diffs from patch file(s).
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/dom/ContainerNode.cpp
Hunk #1 FAILED at 55.
1 out of 1 hunk FAILED -- saving rejects to file Source/WebCore/dom/ContainerNode.cpp.rej

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Antti Koiv...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue/

Full output: http://queues.webkit.org/results/11952511</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579074</commentid>
    <comment_count>35</comment_count>
      <attachid>131762</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-14 20:34:00 -0700</bug_when>
    <thetext>Comment on attachment 131762
Increases the stack allocated buffer size

View in context: https://bugs.webkit.org/attachment.cgi?id=131762&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/dom/ContainerNode.cpp:58
&gt;&gt;&gt;&gt; +typedef Vector&lt;RefPtr&lt;Node&gt;, 11&gt; NodeVector;
&gt;&gt;&gt; 
&gt;&gt;&gt; You should probably add a comment explaining how you arrived at this number.
&gt;&gt; 
&gt;&gt; We don&apos;t normally add that kind of comment in the code. Instead, we tend to document those things in the change log.
&gt; 
&gt; My understanding of WebKit&apos;s policy on comments is that code should be self-documenting, through the use of descriptive variable names and the like.  A magic value in the code is not self-documenting.  The next developer who discovers this value in the code would have to root around in the VCS to find out the change which added it, and then look up the ChangeLog to find the reasoning.

Yeah, I think static const int ChildCountMoslyCovered = 11 will be fine  for example.
The point which should be emphasized  here is that the number is nothing absolute and more empirical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579075</commentid>
    <comment_count>36</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-03-14 20:35:03 -0700</bug_when>
    <thetext>&gt; 
&gt; Yeah, I think static const int ChildCountMoslyCovered = 11 will be fine  for example.
&gt; The point which should be emphasized  here is that the number is nothing absolute and more empirical.
&gt;
Oops the party looks over before I join.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579076</commentid>
    <comment_count>37</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 20:35:27 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; Yeah, I think static const int ChildCountMoslyCovered = 11 will be fine  for example.
&gt; The point which should be emphasized  here is that the number is nothing absolute and more empirical.

We normally document these things in the change log, not in the actual code base.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579089</commentid>
    <comment_count>38</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 20:50:50 -0700</bug_when>
    <thetext>Apparently this patch was committed in http://trac.webkit.org/changeset/110797 but mangled with my patch for https://bugs.webkit.org/show_bug.cgi?id=80900.

Fixed the change log in http://trac.webkit.org/changeset/110797.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579090</commentid>
    <comment_count>39</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 20:51:37 -0700</bug_when>
    <thetext>I mean in http://trac.webkit.org/changeset/110817.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579103</commentid>
    <comment_count>40</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 21:00:38 -0700</bug_when>
    <thetext>http://crbug.com/117020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132614</commentid>
    <comment_count>41</comment_count>
    <who name="Ryan Reno">rreno</who>
    <bug_when>2025-07-25 16:55:20 -0700</bug_when>
    <thetext>I repeated Ryosuke&apos;s experiment from comment 20 today with a set of sites I chose myself. 11 still covers between 98% and 99% of all hits to collectChildNodes (which I think is the modern version of collectNodes). Still a good choice of inline size 13 years later based on my rough study.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2132724</commentid>
    <comment_count>42</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2025-07-27 07:25:41 -0700</bug_when>
    <thetext>That&apos;s good to know. I wonder if should adjust it to a round number like 16 though.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131056</attachid>
            <date>2012-03-09 10:22:14 -0800</date>
            <delta_ts>2012-03-09 11:45:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80706-20120309132212.patch</filename>
            <type>text/plain</type>
            <size>1324</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTA5ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcHJvdmUgQ29u
dGFpbmVyTm9kZSBjb2xsZWN0Tm9kZSgpIHBlcmZvcm1hbmNlIGJ5IHJlc2VydmluZyB2ZWN0b3IK
KyAgICAgICAgY2FwYWNpdHkgdXAgZnJvbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0Tm9kZXMp
OgorCiAyMDEyLTAzLTA5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ2FjaGVkUmF3UmVzb3VyY2UgYnJlYWtzIHdoZW4gdHJ5aW5nIHRvIGxvYWQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9uIDExMDMwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMs
NiArNjMsMTEgQEAgc3RhdGljIGJvb2wgc19zaG91bGRSZUVuYWJsZU1lbW9yeUNhY2hlQwogCiBz
dGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE5vZGVzKE5vZGUqIG5vZGUsIE5vZGVWZWN0b3ImIG5v
ZGVzKQogeworICAgIHNpemVfdCBuZXdTaXplID0gbm9kZXMuc2l6ZSgpOworICAgIGZvciAoTm9k
ZSogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKQorICAgICAgICBuZXdTaXplKys7CisKKyAgICBub2Rlcy5yZXNlcnZlQ2FwYWNp
dHkobmV3U2l6ZSk7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIG5vZGVzLmFwcGVu
ZChjaGlsZCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131065</attachid>
            <date>2012-03-09 11:46:01 -0800</date>
            <delta_ts>2012-03-09 12:54:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80706-20120309144559.patch</filename>
            <type>text/plain</type>
            <size>1681</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTA5ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcHJvdmUgQ29u
dGFpbmVyTm9kZSBjb2xsZWN0Tm9kZSgpIHBlcmZvcm1hbmNlIGJ5IHJlc2VydmluZyB2ZWN0b3IK
KyAgICAgICAgY2FwYWNpdHkgdXAgZnJvbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0Tm9kZXMp
OgorCiAyMDEyLTAzLTA5ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQ2FjaGVkUmF3UmVzb3VyY2UgYnJlYWtzIHdoZW4gdHJ5aW5nIHRvIGxvYWQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9uIDExMDMwMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjEs
OCArNjEsOSBAQCBzdGF0aWMgTm9kZUNhbGxiYWNrUXVldWUqIHNfcG9zdEF0dGFjaENhCiBzdGF0
aWMgc2l6ZV90IHNfYXR0YWNoRGVwdGg7CiBzdGF0aWMgYm9vbCBzX3Nob3VsZFJlRW5hYmxlTWVt
b3J5Q2FjaGVDYWxsc0FmdGVyQXR0YWNoOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE5v
ZGVzKE5vZGUqIG5vZGUsIE5vZGVWZWN0b3ImIG5vZGVzKQorc3RhdGljIGlubGluZSB2b2lkIGNv
bGxlY3ROb2RlcyhDb250YWluZXJOb2RlKiBub2RlLCBOb2RlVmVjdG9yJiBub2RlcykKIHsKKyAg
ICBub2Rlcy5yZXNlcnZlQ2FwYWNpdHkobm9kZXMuc2l6ZSgpICsgbm9kZS0+Y2hpbGROb2RlQ291
bnQoKSk7CiAgICAgZm9yIChOb2RlKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCiAgICAgICAgIG5vZGVzLmFwcGVuZChjaGls
ZCk7CiB9CkBAIC03Myw3ICs3NCwxMCBAQCBzdGF0aWMgdm9pZCBjb2xsZWN0VGFyZ2V0Tm9kZXMo
Tm9kZSogbm9kCiAgICAgICAgIG5vZGVzLmFwcGVuZChub2RlKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KLSAgICBjb2xsZWN0Tm9kZXMobm9kZSwgbm9kZXMpOworICAgIGlmICghbm9kZS0+aXND
b250YWluZXJOb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbGxlY3ROb2RlcyhzdGF0
aWNfY2FzdDxDb250YWluZXJOb2RlKj4obm9kZSksIG5vZGVzKTsKIH0KIAogdm9pZCBDb250YWlu
ZXJOb2RlOjpyZW1vdmVBbGxDaGlsZHJlbigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131081</attachid>
            <date>2012-03-09 12:54:32 -0800</date>
            <delta_ts>2012-03-09 14:55:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80706-20120309155431.patch</filename>
            <type>text/plain</type>
            <size>1613</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTA5ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcHJvdmUgQ29u
dGFpbmVyTm9kZSBjb2xsZWN0Tm9kZSgpIHBlcmZvcm1hbmNlIGJ5IHJlc2VydmluZyB2ZWN0b3IK
KyAgICAgICAgY2FwYWNpdHkgdXAgZnJvbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0Tm9kZXMp
OgorCiAyMDEyLTAzLTA5ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENsZWFudXAgaW5jRE9NVHJlZVZlcnNpb24gY2FsbGVycwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmNwcAkocmV2aXNpb24gMTEwMzIwKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw4ICs2MSw5IEBAIHN0
YXRpYyBOb2RlQ2FsbGJhY2tRdWV1ZSogc19wb3N0QXR0YWNoQ2EKIHN0YXRpYyBzaXplX3Qgc19h
dHRhY2hEZXB0aDsKIHN0YXRpYyBib29sIHNfc2hvdWxkUmVFbmFibGVNZW1vcnlDYWNoZUNhbGxz
QWZ0ZXJBdHRhY2g7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0Tm9kZXMoTm9kZSogbm9k
ZSwgTm9kZVZlY3RvciYgbm9kZXMpCitzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE5vZGVzKENv
bnRhaW5lck5vZGUqIG5vZGUsIE5vZGVWZWN0b3ImIG5vZGVzKQogeworICAgIG5vZGVzLnJlc2Vy
dmVDYXBhY2l0eShub2Rlcy5zaXplKCkgKyBub2RlLT5jaGlsZE5vZGVDb3VudCgpKTsKICAgICBm
b3IgKE5vZGUqIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKICAgICAgICAgbm9kZXMuYXBwZW5kKGNoaWxkKTsKIH0KQEAgLTcz
LDcgKzc0LDcgQEAgc3RhdGljIHZvaWQgY29sbGVjdFRhcmdldE5vZGVzKE5vZGUqIG5vZAogICAg
ICAgICBub2Rlcy5hcHBlbmQobm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29s
bGVjdE5vZGVzKG5vZGUsIG5vZGVzKTsKKyAgICBjb2xsZWN0Tm9kZXMoc3RhdGljX2Nhc3Q8Q29u
dGFpbmVyTm9kZSo+KG5vZGUpLCBub2Rlcyk7CiB9CiAKIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQWxsQ2hpbGRyZW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131118</attachid>
            <date>2012-03-09 14:54:51 -0800</date>
            <delta_ts>2012-03-13 17:36:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80706-20120309175450.patch</filename>
            <type>text/plain</type>
            <size>2003</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDMzMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTA5ICBTdGVwaGVu
IFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEltcHJvdmUgQ29u
dGFpbmVyTm9kZSBjb2xsZWN0Tm9kZSgpIHBlcmZvcm1hbmNlIGJ5IHJlc2VydmluZyB2ZWN0b3IK
KyAgICAgICAgY2FwYWNpdHkgdXAgZnJvbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuICBQZXJmb3JtYW5j
ZSB3aWxsIGJlIGV2YWx1YXRlZCBiYXNlZCBvbgorICAgICAgICBDaHJvbWl1bSdzIHBhZ2VfY3lj
bGVyX2Jsb2F0LWh0dHAsIHBhZ2VfY3ljbGVyX2ludGwxLCBhbmQKKyAgICAgICAgZHJvbWFlb19k
b21jb3JlIHN1aXRlcy4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbGxlY3ROb2Rlcyk6CisKIDIwMTItMDMtMDkgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxMTAzMDkuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCShy
ZXZpc2lvbiAxMTAzMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDaGlsZExpc3RNdXRh
dGlvblNjb3BlLmgiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNs
dWRlICJEZWxldGVCdXR0b25Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCkBAIC02MSw4ICs2Miw5IEBAIHN0YXRpYyBOb2RlQ2Fs
bGJhY2tRdWV1ZSogc19wb3N0QXR0YWNoQ2EKIHN0YXRpYyBzaXplX3Qgc19hdHRhY2hEZXB0aDsK
IHN0YXRpYyBib29sIHNfc2hvdWxkUmVFbmFibGVNZW1vcnlDYWNoZUNhbGxzQWZ0ZXJBdHRhY2g7
CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBjb2xsZWN0Tm9kZXMoTm9kZSogbm9kZSwgTm9kZVZlY3Rv
ciYgbm9kZXMpCitzdGF0aWMgaW5saW5lIHZvaWQgY29sbGVjdE5vZGVzKENvbnRhaW5lck5vZGUq
IG5vZGUsIE5vZGVWZWN0b3ImIG5vZGVzKQogeworICAgIG5vZGVzLnJlc2VydmVDYXBhY2l0eShu
b2Rlcy5zaXplKCkgKyBub2RlLT5jaGlsZE5vZGVDb3VudCgpKTsKICAgICBmb3IgKE5vZGUqIGNo
aWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkKICAgICAgICAgbm9kZXMuYXBwZW5kKGNoaWxkKTsKIH0KQEAgLTczLDcgKzc1LDcgQEAg
c3RhdGljIHZvaWQgY29sbGVjdFRhcmdldE5vZGVzKE5vZGUqIG5vZAogICAgICAgICBub2Rlcy5h
cHBlbmQobm9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29sbGVjdE5vZGVzKG5v
ZGUsIG5vZGVzKTsKKyAgICBjb2xsZWN0Tm9kZXMoc3RhdGljX2Nhc3Q8RG9jdW1lbnRGcmFnbWVu
dCo+KG5vZGUpLCBub2Rlcyk7CiB9CiAKIHZvaWQgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQWxsQ2hp
bGRyZW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131762</attachid>
            <date>2012-03-13 17:36:26 -0700</date>
            <delta_ts>2012-03-14 20:34:00 -0700</delta_ts>
            <desc>Increases the stack allocated buffer size</desc>
            <filename>bug-80706-20120313173618.patch</filename>
            <type>text/plain</type>
            <size>1319</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDY0OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTEzICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcHJvdmUgQ29udGFpbmVyTm9k
ZSdzIGNvbGxlY3ROb2RlcygpIHBlcmZvcm1hbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDcwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJ1bXAgdXAgdGhlIHNpemUgb2Ygc3RhY2sgYWxsb2NhdGVk
IGJ1ZmZlciBmcm9tIDEgdG8gMTEuIEFjY29yZGluZyB0byB0aGUgcm91Z2ggc3R1ZHkgSSBjb25k
dWN0ZWQsCisgICAgICAgIHRoaXMgd291bGQgY292ZXIgOTkuNSUgb2YgYWxsIG5vZGUgY29sbGVj
dGlvbi4KKworICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmUpOgorCiAyMDEyLTAzLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBwb3RlbnRpYWwgY3Jhc2ggd2hlbiBsb2FkaW5nIHRlc3QgcmVzdWx0
cwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkocmV2aXNpb24gMTEwNTQx
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01NSw3ICs1NSw3IEBAIHR5cGVkZWYgcGFpcjxSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkPiBD
YWwKIHR5cGVkZWYgcGFpcjxOb2RlQ2FsbGJhY2ssIENhbGxiYWNrUGFyYW1ldGVycz4gQ2FsbGJh
Y2tJbmZvOwogdHlwZWRlZiBWZWN0b3I8Q2FsbGJhY2tJbmZvPiBOb2RlQ2FsbGJhY2tRdWV1ZTsK
IAotdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE5vZGU+LCAxPiBOb2RlVmVjdG9yOwordHlwZWRlZiBW
ZWN0b3I8UmVmUHRyPE5vZGU+LCAxMT4gTm9kZVZlY3RvcjsKIHN0YXRpYyBOb2RlQ2FsbGJhY2tR
dWV1ZSogc19wb3N0QXR0YWNoQ2FsbGJhY2tRdWV1ZTsKIAogc3RhdGljIHNpemVfdCBzX2F0dGFj
aERlcHRoOwo=
</data>
<flag name="review"
          id="135181"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="135451"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>