<?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>115581</bug_id>
          
          <creation_ts>2013-05-03 20:45:54 -0700</creation_ts>
          <short_desc>Remove CSS selector profiler branches from ElementRuleCollector loop.</short_desc>
          <delta_ts>2013-05-04 08:02:39 -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>CSS</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>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>884469</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-03 20:45:54 -0700</bug_when>
    <thetext>Remove CSS selector profiler branches from ElementRuleCollector loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884471</commentid>
    <comment_count>1</comment_count>
      <attachid>200514</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-03 20:46:26 -0700</bug_when>
    <thetext>Created attachment 200514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884474</commentid>
    <comment_count>2</comment_count>
      <attachid>200514</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-05-03 20:53:54 -0700</bug_when>
    <thetext>Comment on attachment 200514
Patch

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

&gt; Source/WebCore/css/ElementRuleCollector.cpp:409
&gt; +    if (InspectorInstrumentation::hasFrontends())
&gt; +        doCollectMatchingRulesForList&lt;true&gt;(rules, matchRequest, ruleRange);
&gt; +    else
&gt; +        doCollectMatchingRulesForList&lt;false&gt;(rules, matchRequest, ruleRange);

Please use early return for the exceptional path. UNLIKELY might be good too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>884525</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-05-04 08:02:39 -0700</bug_when>
    <thetext>Committed r149557: &lt;http://trac.webkit.org/changeset/149557&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>200514</attachid>
            <date>2013-05-03 20:46:26 -0700</date>
            <delta_ts>2013-05-03 20:53:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-115581.diff</filename>
            <type>text/plain</type>
            <size>5234</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMzdkYmJmLi4xNDI4NzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTMtMDUtMDMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBDU1Mgc2VsZWN0b3IgcHJvZmlsZXIgYnJhbmNoZXMgZnJvbSBFbGVtZW50UnVs
ZUNvbGxlY3RvciBsb29wLgorICAgICAgICA8aHR0cDovL3dlYmtpdC5vcmcvYi8xMTU1ODE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVtcGxhdGl6
ZSB0aGUgbWV0aG9kIHNvIHdlIGRvbid0IGhhdmUgdG8gY2hlY2sgZm9yIGFjdGl2ZSBpbnNwZWN0
b3IgZnJvbnRlbmRzIG9uIGV2ZXJ5CisgICAgICAgIHBhc3MgdGhyb3VnaCB0aGUgbG9vcC4KKwor
ICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oOgorICAgICAgICAqIGNzcy9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxl
Y3Rvcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkVs
ZW1lbnRSdWxlQ29sbGVjdG9yOjpkb0NvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisKIDIw
MTMtMDUtMDMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gc2V0TWV0YWRhdGFVUkwgaW5jb3JyZWN0bHkgdHJlYXRzIHBhdGggYnl0ZXMgYXMgTGF0
aW4tMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKaW5kZXgg
M2MyZGMzYi4uZmNiNjRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRS
dWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xs
ZWN0b3IuY3BwCkBAIC00MDMsNiArNDAzLDE1IEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxlQ29s
bGVjdG9yOjpydWxlTWF0Y2hlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIGNvbnN0IENvCiAK
IHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChj
b25zdCBWZWN0b3I8UnVsZURhdGE+KiBydWxlcywgY29uc3QgTWF0Y2hSZXF1ZXN0JiBtYXRjaFJl
cXVlc3QsIFN0eWxlUmVzb2x2ZXI6OlJ1bGVSYW5nZSYgcnVsZVJhbmdlKQogeworICAgIGlmIChJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKQorICAgICAgICBkb0NvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdDx0cnVlPihydWxlcywgbWF0Y2hSZXF1ZXN0LCBydWxlUmFu
Z2UpOworICAgIGVsc2UKKyAgICAgICAgZG9Db2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Q8ZmFs
c2U+KHJ1bGVzLCBtYXRjaFJlcXVlc3QsIHJ1bGVSYW5nZSk7Cit9CisKK3RlbXBsYXRlPGJvb2wg
aGFzSW5zcGVjdG9yRnJvbnRlbmRzPgordm9pZCBFbGVtZW50UnVsZUNvbGxlY3Rvcjo6ZG9Db2xs
ZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGNv
bnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBTdHlsZVJlc29sdmVyOjpSdWxlUmFuZ2Um
IHJ1bGVSYW5nZSkKK3sKICAgICBpZiAoIXJ1bGVzKQogICAgICAgICByZXR1cm47CiAKQEAgLTQx
NSwyNSArNDI0LDMwIEBAIHZvaWQgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OmNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiByCiAgICAgICAgICAgICBjb250
aW51ZTsKIAogICAgICAgICBTdHlsZVJ1bGUqIHJ1bGUgPSBydWxlRGF0YS5ydWxlKCk7Ci0gICAg
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxNYXRjaFJ1bGUoZG9jdW1lbnQoKSwgcnVsZSwgbV9pbnNwZWN0b3JD
U1NPTVdyYXBwZXJzLCBkb2N1bWVudCgpLT5zdHlsZVNoZWV0Q29sbGVjdGlvbigpKTsKKyAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llIGNvb2tpZTsKKyAgICAgICAgaWYgKGhh
c0luc3BlY3RvckZyb250ZW5kcykKKyAgICAgICAgICAgIGNvb2tpZSA9IEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbE1hdGNoUnVsZShkb2N1bWVudCgpLCBydWxlLCBtX2luc3BlY3RvckNT
U09NV3JhcHBlcnMsIGRvY3VtZW50KCktPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCkpOwogICAgICAg
ICBQc2V1ZG9JZCBkeW5hbWljUHNldWRvID0gTk9QU0VVRE87CiAgICAgICAgIGlmIChydWxlTWF0
Y2hlcyhydWxlRGF0YSwgbWF0Y2hSZXF1ZXN0LnNjb3BlLCBkeW5hbWljUHNldWRvKSkgewogICAg
ICAgICAgICAgLy8gSWYgdGhlIHJ1bGUgaGFzIG5vIHByb3BlcnRpZXMgdG8gYXBwbHksIHRoZW4g
aWdub3JlIGl0IGluIHRoZSBub24tZGVidWcgbW9kZS4KICAgICAgICAgICAgIGNvbnN0IFN0eWxl
UHJvcGVydHlTZXQqIHByb3BlcnRpZXMgPSBydWxlLT5wcm9wZXJ0aWVzKCk7CiAgICAgICAgICAg
ICBpZiAoIXByb3BlcnRpZXMgfHwgKHByb3BlcnRpZXMtPmlzRW1wdHkoKSAmJiAhbWF0Y2hSZXF1
ZXN0LmluY2x1ZGVFbXB0eVJ1bGVzKSkgewotICAgICAgICAgICAgICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgZmFsc2UpOworICAgICAgICAgICAgICAg
IGlmIChoYXNJbnNwZWN0b3JGcm9udGVuZHMpCisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgZmFsc2UpOwogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLy8gRklYTUU6IEV4
cG9zaW5nIHRoZSBub24tc3RhbmRhcmQgZ2V0TWF0Y2hlZENTU1J1bGVzIEFQSSB0byB3ZWIgaXMg
dGhlIG9ubHkgcmVhc29uIHRoaXMgaXMgbmVlZGVkLgogICAgICAgICAgICAgaWYgKG1fc2FtZU9y
aWdpbk9ubHkgJiYgIXJ1bGVEYXRhLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSkgewotICAg
ICAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tp
ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGlmIChoYXNJbnNwZWN0b3JGcm9udGVuZHMpCisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxl
KGNvb2tpZSwgZmFsc2UpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgLy8gSWYgd2UncmUgbWF0Y2hpbmcgbm9ybWFsIHJ1bGVzLCBzZXQgYSBw
c2V1ZG8gYml0IGlmCiAgICAgICAgICAgICAvLyB3ZSByZWFsbHkganVzdCBtYXRjaGVkIGEgcHNl
dWRvLWVsZW1lbnQuCiAgICAgICAgICAgICBpZiAoZHluYW1pY1BzZXVkbyAhPSBOT1BTRVVETyAm
JiBtX3BzZXVkb1N0eWxlUmVxdWVzdC5wc2V1ZG9JZCA9PSBOT1BTRVVETykgewogICAgICAgICAg
ICAgICAgIGlmIChtX21vZGUgPT0gU2VsZWN0b3JDaGVja2VyOjpDb2xsZWN0aW5nUnVsZXMpIHsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRNYXRjaFJ1
bGUoY29va2llLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChoYXNJbnNwZWN0b3JG
cm9udGVuZHMpCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmRpZE1hdGNoUnVsZShjb29raWUsIGZhbHNlKTsKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChkeW5hbWljUHNl
dWRvIDwgRklSU1RfSU5URVJOQUxfUFNFVURPSUQpCkBAIC00NDYsMTEgKzQ2MCwxMyBAQCB2b2lk
IEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3Qg
VmVjdG9yPFJ1bGVEYXRhPiogcgogCiAgICAgICAgICAgICAgICAgLy8gQWRkIHRoaXMgcnVsZSB0
byBvdXIgbGlzdCBvZiBtYXRjaGVkIHJ1bGVzLgogICAgICAgICAgICAgICAgIGFkZE1hdGNoZWRS
dWxlKCZydWxlRGF0YSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRNYXRjaFJ1bGUoY29va2llLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBpZiAoaGFzSW5z
cGVjdG9yRnJvbnRlbmRzKQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZE1hdGNoUnVsZShjb29raWUsIHRydWUpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgZmFsc2UpOworICAgICAgICBpZiAoaGFzSW5z
cGVjdG9yRnJvbnRlbmRzKQorICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRNYXRjaFJ1bGUoY29va2llLCBmYWxzZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCmluZGV4IDBmZTBlNTYuLmQ0MzEzMGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCkBAIC05Miw2ICs5Miw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjbGVhck1hdGNoZWRSdWxlcygpOwogICAgICAgICAKIHByaXZhdGU6
CisgICAgdGVtcGxhdGU8Ym9vbCBoYXNJbnNwZWN0b3JGcm9udGVuZHM+CisgICAgdm9pZCBkb0Nv
bGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiwgY29uc3Qg
TWF0Y2hSZXF1ZXN0JiwgU3R5bGVSZXNvbHZlcjo6UnVsZVJhbmdlJik7CisKICAgICBjb25zdCBT
dHlsZVJlc29sdmVyOjpTdGF0ZSYgbV9zdGF0ZTsKICAgICBEb2N1bWVudFJ1bGVTZXRzJiBtX3J1
bGVTZXRzOwogICAgIFNlbGVjdG9yRmlsdGVyJiBtX3NlbGVjdG9yRmlsdGVyOwo=
</data>
<flag name="review"
          id="221949"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>