<?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>143857</bug_id>
          
          <creation_ts>2015-04-16 17:38:35 -0700</creation_ts>
          <short_desc>Use less memory when compiling content extensions</short_desc>
          <delta_ts>2015-04-16 18:14:13 -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>WebCore Misc.</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086194</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 17:38:35 -0700</bug_when>
    <thetext>We keep a lot of things alive when compiling.  Using less memory would start with keeping fewer things alive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086195</commentid>
    <comment_count>1</comment_count>
      <attachid>250983</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 17:39:42 -0700</bug_when>
    <thetext>Created attachment 250983
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086201</commentid>
    <comment_count>2</comment_count>
      <attachid>250983</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-04-16 17:46:36 -0700</bug_when>
    <thetext>Comment on attachment 250983
Patch

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

Simon would like more info in the changelog.

I don&apos;t like the &quot;// Free memory.&quot;, they are not adding any information.

&gt; Source/WebCore/contentextensions/ContentExtensionCompiler.cpp:165
&gt; +    parsedRuleList = Vector&lt;ContentExtensionRule&gt;(); // Free memory.
&gt; +    actionLocations = Vector&lt;unsigned&gt;(); // Free memory.

Vector has clear().

A single comment on top of the two lines would be better.

&gt; Source/WebCore/contentextensions/ContentExtensionCompiler.cpp:179
&gt;      Vector&lt;NFA&gt; nfas = combinedURLFilters.createNFAs();
&gt;      if (!nfas.size() &amp;&amp; universalActionLocations.size())
&gt;          nfas.append(NFA());
&gt; +    combinedURLFilters.clear(); // Free memory.

I am unconvinced this is the right balance.

We should look into generating the NFAs one by one out of the combinedURLFilters, generate its DFA, clear the NFA, generate the bytecode, clear the DFA.

&gt; Source/WebCore/contentextensions/ContentExtensionCompiler.cpp:240
&gt; +    nfas = Vector&lt;NFA&gt;(); // Free memory.

nfas.clear()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086207</commentid>
    <comment_count>3</comment_count>
      <attachid>250984</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 17:58:39 -0700</bug_when>
    <thetext>Created attachment 250984
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086210</commentid>
    <comment_count>4</comment_count>
      <attachid>250986</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 18:02:23 -0700</bug_when>
    <thetext>Created attachment 250986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086211</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-04-16 18:14:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182935</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250983</attachid>
            <date>2015-04-16 17:39:42 -0700</date>
            <delta_ts>2015-04-16 17:58:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143857-20150416173844.patch</filename>
            <type>text/plain</type>
            <size>3800</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA0LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGxlc3Mg
bWVtb3J5IHdoZW4gY29tcGlsaW5nIGNvbnRlbnQgZXh0ZW5zaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzODU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21i
aW5lZFVSTEZpbHRlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OkNvbWJpbmVkVVJMRmlsdGVyczo6Y2xlYXIpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6Y29tcGlsZVJ1bGVMaXN0KToKKyAgICAgICAgQ2xlYXIgc3RydWN0dXJlcyB3aGVuIGZp
bmlzaGVkIHVzaW5nIHRoZW0uCisKIDIwMTUtMDQtMTYgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25n
QGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBlbGVtZW50IHRpbWUgZGlzcGxheXMgc2hvdWxk
bid0IHdyYXAuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5l
ZFVSTEZpbHRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAJKHJldmlzaW9uIDE4MjkyMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDYgKzUyLDExIEBAIENvbWJpbmVkVVJMRmlsdGVyczo6fkNvbWJpbmVk
VVJMRmlsdGVycygKIHsKIH0KIAordm9pZCBDb21iaW5lZFVSTEZpbHRlcnM6OmNsZWFyKCkKK3sK
KyAgICBtX3ByZWZpeFRyZWVSb290ID0gc3RkOjptYWtlX3VuaXF1ZTxQcmVmaXhUcmVlVmVydGV4
PigpOworfQorCiB2b2lkIENvbWJpbmVkVVJMRmlsdGVyczo6YWRkUGF0dGVybih1aW50NjRfdCBh
Y3Rpb25JZCwgY29uc3QgVmVjdG9yPFRlcm0+JiBwYXR0ZXJuKQogewogICAgIEFTU0VSVF9XSVRI
X01FU1NBR0UoIXBhdHRlcm4uaXNFbXB0eSgpLCAiVGhlIHBhcnNlciBzaG91bGQgaGF2ZSBleGNs
dWRlZCBlbXB0eSBwYXR0ZXJucyBiZWZvcmUgcmVhY2hpbmcgQ29tYmluZWRVUkxGaWx0ZXJzLiIp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0
ZXJzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29t
YmluZWRVUkxGaWx0ZXJzLmgJKHJldmlzaW9uIDE4MjkyMykKKysrIFNvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw2ICs0NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFBhdHRlcm4odWludDY0X3QgcGF0dGVy
bklkLCBjb25zdCBWZWN0b3I8VGVybT4mIHBhdHRlcm4pOwogCiAgICAgVmVjdG9yPE5GQT4gY3Jl
YXRlTkZBcygpIGNvbnN0OworICAgIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UHJlZml4VHJlZVZlcnRleD4gbV9wcmVmaXhUcmVlUm9vdDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkNvbXBpbGVyLmNwcAkocmV2aXNpb24gMTgyOTIzKQorKysgU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYxLDYgKzE2MSw4IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxp
c3QoQ29udGVudEUKICAgICAgICAgaWYgKGNvbnRlbnRFeHRlbnNpb25SdWxlLmFjdGlvbigpLnR5
cGUoKSA9PSBBY3Rpb25UeXBlOjpJZ25vcmVQcmV2aW91c1J1bGVzKQogICAgICAgICAgICAgaWdu
b3JlUHJldmlvdXNSdWxlc1NlZW4gPSB0cnVlOwogICAgIH0KKyAgICBwYXJzZWRSdWxlTGlzdCA9
IFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uUnVsZT4oKTsgLy8gRnJlZSBtZW1vcnkuCisgICAgYWN0
aW9uTG9jYXRpb25zID0gVmVjdG9yPHVuc2lnbmVkPigpOyAvLyBGcmVlIG1lbW9yeS4KIAogI2lm
IENPTlRFTlRfRVhURU5TSU9OU19QRVJGT1JNQU5DRV9SRVBPUlRJTkcKICAgICBkb3VibGUgcGF0
dGVyblBhcnRpdGlvbmluZ0VuZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwpAQCAt
MTc0LDYgKzE3Niw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEUK
ICAgICBWZWN0b3I8TkZBPiBuZmFzID0gY29tYmluZWRVUkxGaWx0ZXJzLmNyZWF0ZU5GQXMoKTsK
ICAgICBpZiAoIW5mYXMuc2l6ZSgpICYmIHVuaXZlcnNhbEFjdGlvbkxvY2F0aW9ucy5zaXplKCkp
CiAgICAgICAgIG5mYXMuYXBwZW5kKE5GQSgpKTsKKyAgICBjb21iaW5lZFVSTEZpbHRlcnMuY2xl
YXIoKTsgLy8gRnJlZSBtZW1vcnkuCiAKICNpZiBDT05URU5UX0VYVEVOU0lPTlNfUEVSRk9STUFO
Q0VfUkVQT1JUSU5HCiAgICAgZG91YmxlIG5mYUJ1aWxkVGltZUVuZCA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOwpAQCAtMjI2LDYgKzIyOSw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21w
aWxlUnVsZUxpc3QoQ29udGVudEUKICAgICAgICAgREZBQnl0ZWNvZGVDb21waWxlciBjb21waWxl
cihkZmEsIGJ5dGVjb2RlKTsKICAgICAgICAgY29tcGlsZXIuY29tcGlsZSgpOwogICAgIH0KKyAg
ICB1bml2ZXJzYWxBY3Rpb25Mb2NhdGlvbnMuY2xlYXIoKTsgLy8gRnJlZSBtZW1vcnkuCiAKICNp
ZiBDT05URU5UX0VYVEVOU0lPTlNfUEVSRk9STUFOQ0VfUkVQT1JUSU5HCiAgICAgZG91YmxlIHRv
dGFsTkZBVG9CeXRlQ29kZUJ1aWxkVGltZUVuZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpOwpAQCAtMjMzLDYgKzIzNyw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3Qo
Q29udGVudEUKICAgICBkYXRhTG9nRigiICAgIEJ5dGVjb2RlIHNpemUgJXp1XG4iLCBieXRlY29k
ZS5zaXplKCkpOwogICAgIGRhdGFMb2dGKCIgICAgREZBIGNvdW50ICV6dVxuIiwgbmZhcy5zaXpl
KCkpOwogI2VuZGlmCisgICAgbmZhcyA9IFZlY3RvcjxORkE+KCk7IC8vIEZyZWUgbWVtb3J5Lgog
CiAgICAgY2xpZW50LndyaXRlQnl0ZWNvZGUoV1RGOjptb3ZlKGJ5dGVjb2RlKSk7CiAgICAgY2xp
ZW50LndyaXRlQWN0aW9ucyhXVEY6Om1vdmUoYWN0aW9ucykpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250984</attachid>
            <date>2015-04-16 17:58:39 -0700</date>
            <delta_ts>2015-04-16 18:02:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143857-20150416175741.patch</filename>
            <type>text/plain</type>
            <size>5036</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGxlc3Mg
bWVtb3J5IHdoZW4gY29tcGlsaW5nIGNvbnRlbnQgZXh0ZW5zaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzODU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjb21waWxpbmcgYSBjb250ZW50
IGV4dGVuc2lvbiwgd2UgY29udmVydCB0aGUgcnVsZSBsaXN0IGludG8gc2V2ZXJhbCBpbnRlcm1l
ZGlhdGUgZm9ybXM6CisKKyAgICAgICAgMSkgQSBTdHJpbmcuCisgICAgICAgIDIpIEEgSlNWYWx1
ZSBmcm9tIEpTT05QYXJzZSBpbiBsb2FkRW5jb2RlZFJ1bGVzLgorICAgICAgICAzKSBBIFZlY3Rv
ciBvZiBDb250ZW50RXh0ZW5zaW9uUnVsZXMuCisgICAgICAgIDQpIEEgQ29tYmluZWRVUkxGaWx0
ZXJzIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBpZWNlcyBvZiB0aGUgcmVndWxhciBleHByZXNz
aW9ucyBmcm9tIHRoZSB0cmlnZ2Vycy4KKyAgICAgICAgNSkgQSBWZWN0b3Igb2YgTkZBcy4KKyAg
ICAgICAgNikgQSBERkEgZm9yIGVhY2ggTkZBLgorICAgICAgICA3KSBBIFZlY3RvciBvZiBERkFC
eXRlY29kZS4KKyAgICAgICAgCisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNvbnRhaW5zIGFs
bCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBjb250ZW50IGV4dGVuc2lvbiwKKyAg
ICAgICAgc28gd2UgZG8gbm90IG5lZWQgdG8ga2VlcCB0aGVtIGFsbCBpbiBtZW1vcnkgYXQgdGhl
IHNhbWUgdGltZSBsaWtlIHdlIGFyZSBkb2luZyBub3cuCisgICAgICAgIFdoZW4gd2UgYXJlIGRv
bmUgd2l0aCBvbmUsIHdlIGNhbiBmcmVlIHRoYXQgbWVtb3J5IHRvIGdyZWF0bHkgcmVkdWNlIHRo
ZSBtYXhpbXVtIG1lbW9yeSB1c2FnZSB3aGlsZSBjb21waWxpbmcuCisgICAgICAgIFRoZSBuZXh0
IHN0ZXAgd2lsbCBiZSB0byByZWR1Y2UgdGhlIGNvcGllcyBvZiB0aGUgb3JpZ2luYWwgSlNPTiBT
dHJpbmcuCisKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbWJpbmVkVVJMRmls
dGVyczo6Y2xlYXIpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmls
dGVycy5oOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21w
aWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29tcGlsZVJ1
bGVMaXN0KToKKyAgICAgICAgQ2xlYXIgc3RydWN0dXJlcyB3aGVuIGZpbmlzaGVkIHVzaW5nIHRo
ZW0uCisKIDIwMTUtMDQtMTYgIFJvZ2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNZWRpYSBlbGVtZW50IHRpbWUgZGlzcGxheXMgc2hvdWxkbid0IHdyYXAuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbWJpbmVk
VVJMRmlsdGVycy5jcHAJKHJldmlzaW9uIDE4MjkyMykKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDYgKzUyLDExIEBAIENvbWJpbmVkVVJMRmlsdGVyczo6fkNvbWJpbmVkVVJMRmlsdGVycygKIHsK
IH0KIAordm9pZCBDb21iaW5lZFVSTEZpbHRlcnM6OmNsZWFyKCkKK3sKKyAgICBtX3ByZWZpeFRy
ZWVSb290ID0gc3RkOjptYWtlX3VuaXF1ZTxQcmVmaXhUcmVlVmVydGV4PigpOworfQorCiB2b2lk
IENvbWJpbmVkVVJMRmlsdGVyczo6YWRkUGF0dGVybih1aW50NjRfdCBhY3Rpb25JZCwgY29uc3Qg
VmVjdG9yPFRlcm0+JiBwYXR0ZXJuKQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIXBhdHRl
cm4uaXNFbXB0eSgpLCAiVGhlIHBhcnNlciBzaG91bGQgaGF2ZSBleGNsdWRlZCBlbXB0eSBwYXR0
ZXJucyBiZWZvcmUgcmVhY2hpbmcgQ29tYmluZWRVUkxGaWx0ZXJzLiIpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJz
LmgJKHJldmlzaW9uIDE4MjkyMykKKysrIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbWJpbmVkVVJMRmlsdGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZFBhdHRlcm4odWludDY0X3QgcGF0dGVybklkLCBjb25zdCBWZWN0
b3I8VGVybT4mIHBhdHRlcm4pOwogCiAgICAgVmVjdG9yPE5GQT4gY3JlYXRlTkZBcygpIGNvbnN0
OworICAgIHZvaWQgY2xlYXIoKTsKIAogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJl
Zml4VHJlZVZlcnRleD4gbV9wcmVmaXhUcmVlUm9vdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcAkocmV2aXNpb24gMTgyOTIzKQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMz
LDYgKzEzMyw5IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEUKIAog
ICAgIFZlY3RvcjxTZXJpYWxpemVkQWN0aW9uQnl0ZT4gYWN0aW9uczsKICAgICBWZWN0b3I8dW5z
aWduZWQ+IGFjdGlvbkxvY2F0aW9ucyA9IHNlcmlhbGl6ZUFjdGlvbnMocGFyc2VkUnVsZUxpc3Qs
IGFjdGlvbnMpOworICAgIGNsaWVudC53cml0ZUFjdGlvbnMoV1RGOjptb3ZlKGFjdGlvbnMpKTsK
KyAgICBhY3Rpb25zID0gVmVjdG9yPFNlcmlhbGl6ZWRBY3Rpb25CeXRlPigpOworCiAgICAgSGFz
aFNldDx1aW50NjRfdCwgRGVmYXVsdEhhc2g8dWludDY0X3Q+OjpIYXNoLCBXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPHVpbnQ2NF90Pj4gdW5pdmVyc2FsQWN0aW9uTG9jYXRpb25z
OwogCiAgICAgQ29tYmluZWRVUkxGaWx0ZXJzIGNvbWJpbmVkVVJMRmlsdGVyczsKQEAgLTE2MSw2
ICsxNjQsOCBAQCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFCiAgICAg
ICAgIGlmIChjb250ZW50RXh0ZW5zaW9uUnVsZS5hY3Rpb24oKS50eXBlKCkgPT0gQWN0aW9uVHlw
ZTo6SWdub3JlUHJldmlvdXNSdWxlcykKICAgICAgICAgICAgIGlnbm9yZVByZXZpb3VzUnVsZXNT
ZWVuID0gdHJ1ZTsKICAgICB9CisgICAgcGFyc2VkUnVsZUxpc3QgPSBWZWN0b3I8Q29udGVudEV4
dGVuc2lvblJ1bGU+KCk7CisgICAgYWN0aW9uTG9jYXRpb25zID0gVmVjdG9yPHVuc2lnbmVkPigp
OwogCiAjaWYgQ09OVEVOVF9FWFRFTlNJT05TX1BFUkZPUk1BTkNFX1JFUE9SVElORwogICAgIGRv
dWJsZSBwYXR0ZXJuUGFydGl0aW9uaW5nRW5kID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7CkBAIC0xNzQsNiArMTc5LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChD
b250ZW50RQogICAgIFZlY3RvcjxORkE+IG5mYXMgPSBjb21iaW5lZFVSTEZpbHRlcnMuY3JlYXRl
TkZBcygpOwogICAgIGlmICghbmZhcy5zaXplKCkgJiYgdW5pdmVyc2FsQWN0aW9uTG9jYXRpb25z
LnNpemUoKSkKICAgICAgICAgbmZhcy5hcHBlbmQoTkZBKCkpOworICAgIGNvbWJpbmVkVVJMRmls
dGVycy5jbGVhcigpOwogCiAjaWYgQ09OVEVOVF9FWFRFTlNJT05TX1BFUkZPUk1BTkNFX1JFUE9S
VElORwogICAgIGRvdWJsZSBuZmFCdWlsZFRpbWVFbmQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKTsKQEAgLTIyNiw2ICsyMzIsNyBAQCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVM
aXN0KENvbnRlbnRFCiAgICAgICAgIERGQUJ5dGVjb2RlQ29tcGlsZXIgY29tcGlsZXIoZGZhLCBi
eXRlY29kZSk7CiAgICAgICAgIGNvbXBpbGVyLmNvbXBpbGUoKTsKICAgICB9CisgICAgdW5pdmVy
c2FsQWN0aW9uTG9jYXRpb25zLmNsZWFyKCk7CiAKICNpZiBDT05URU5UX0VYVEVOU0lPTlNfUEVS
Rk9STUFOQ0VfUkVQT1JUSU5HCiAgICAgZG91YmxlIHRvdGFsTkZBVG9CeXRlQ29kZUJ1aWxkVGlt
ZUVuZCA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwpAQCAtMjMzLDkgKzI0MCw5IEBA
IHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEUKICAgICBkYXRhTG9nRigi
ICAgIEJ5dGVjb2RlIHNpemUgJXp1XG4iLCBieXRlY29kZS5zaXplKCkpOwogICAgIGRhdGFMb2dG
KCIgICAgREZBIGNvdW50ICV6dVxuIiwgbmZhcy5zaXplKCkpOwogI2VuZGlmCisgICAgbmZhcyA9
IFZlY3RvcjxORkE+KCk7CiAKICAgICBjbGllbnQud3JpdGVCeXRlY29kZShXVEY6Om1vdmUoYnl0
ZWNvZGUpKTsKLSAgICBjbGllbnQud3JpdGVBY3Rpb25zKFdURjo6bW92ZShhY3Rpb25zKSk7CiAK
ICAgICByZXR1cm4geyB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>250986</attachid>
            <date>2015-04-16 18:02:23 -0700</date>
            <delta_ts>2015-04-16 18:10:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143857-20150416180125.patch</filename>
            <type>text/plain</type>
            <size>4903</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MjkyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE1LTA0LTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIGxlc3Mg
bWVtb3J5IHdoZW4gY29tcGlsaW5nIGNvbnRlbnQgZXh0ZW5zaW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzODU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBjb21waWxpbmcgYSBjb250ZW50
IGV4dGVuc2lvbiwgd2UgY29udmVydCB0aGUgcnVsZSBsaXN0IGludG8gc2V2ZXJhbCBpbnRlcm1l
ZGlhdGUgZm9ybXM6CisKKyAgICAgICAgMSkgQSBTdHJpbmcuCisgICAgICAgIDIpIEEgSlNWYWx1
ZSBmcm9tIEpTT05QYXJzZSBpbiBsb2FkRW5jb2RlZFJ1bGVzLgorICAgICAgICAzKSBBIFZlY3Rv
ciBvZiBDb250ZW50RXh0ZW5zaW9uUnVsZXMuCisgICAgICAgIDQpIEEgQ29tYmluZWRVUkxGaWx0
ZXJzIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHBpZWNlcyBvZiB0aGUgcmVndWxhciBleHByZXNz
aW9ucyBmcm9tIHRoZSB0cmlnZ2Vycy4KKyAgICAgICAgNSkgQSBWZWN0b3Igb2YgTkZBcy4KKyAg
ICAgICAgNikgQSBERkEgZm9yIGVhY2ggTkZBLgorICAgICAgICA3KSBBIFZlY3RvciBvZiBERkFC
eXRlY29kZS4KKyAgICAgICAgCisgICAgICAgIEVhY2ggb25lIG9mIHRoZXNlIGNvbnRhaW5zIGFs
bCB0aGUgaW5mb3JtYXRpb24gY29udGFpbmVkIGluIHRoZSBjb250ZW50IGV4dGVuc2lvbiwKKyAg
ICAgICAgc28gd2UgZG8gbm90IG5lZWQgdG8ga2VlcCB0aGVtIGFsbCBpbiBtZW1vcnkgYXQgdGhl
IHNhbWUgdGltZSBsaWtlIHdlIGFyZSBkb2luZyBub3cuCisgICAgICAgIFdoZW4gd2UgYXJlIGRv
bmUgd2l0aCBvbmUsIHdlIGNhbiBmcmVlIHRoYXQgbWVtb3J5IHRvIGdyZWF0bHkgcmVkdWNlIHRo
ZSBtYXhpbXVtIG1lbW9yeSB1c2FnZSB3aGlsZSBjb21waWxpbmcuCisgICAgICAgIFRoZSBuZXh0
IHN0ZXAgd2lsbCBiZSB0byByZWR1Y2UgdGhlIGNvcGllcyBvZiB0aGUgb3JpZ2luYWwgSlNPTiBT
dHJpbmcgYW5kIHRvIGdlbmVyYXRlIE5GQXMgb25lIGF0IGEgdGltZS4KKworICAgICAgICAqIGNv
bnRlbnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RXh0ZW5zaW9uczo6Q29tYmluZWRVUkxGaWx0ZXJzOjpjbGVhcik6CisgICAgICAg
ICogY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmg6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QpOgorICAgICAgICBDbGVh
ciBzdHJ1Y3R1cmVzIHdoZW4gZmluaXNoZWQgdXNpbmcgdGhlbS4KKwogMjAxNS0wNC0xNiAgUm9n
ZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGVsZW1lbnQg
dGltZSBkaXNwbGF5cyBzaG91bGRuJ3Qgd3JhcC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbWJpbmVkVVJMRmlsdGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmNwcAkocmV2aXNp
b24gMTgyOTIzKQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRV
UkxGaWx0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsMTEgQEAgQ29tYmluZWRV
UkxGaWx0ZXJzOjp+Q29tYmluZWRVUkxGaWx0ZXJzKAogewogfQogCit2b2lkIENvbWJpbmVkVVJM
RmlsdGVyczo6Y2xlYXIoKQoreworICAgIG1fcHJlZml4VHJlZVJvb3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPFByZWZpeFRyZWVWZXJ0ZXg+KCk7Cit9CisKIHZvaWQgQ29tYmluZWRVUkxGaWx0ZXJzOjph
ZGRQYXR0ZXJuKHVpbnQ2NF90IGFjdGlvbklkLCBjb25zdCBWZWN0b3I8VGVybT4mIHBhdHRlcm4p
CiB7CiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghcGF0dGVybi5pc0VtcHR5KCksICJUaGUgcGFy
c2VyIHNob3VsZCBoYXZlIGV4Y2x1ZGVkIGVtcHR5IHBhdHRlcm5zIGJlZm9yZSByZWFjaGluZyBD
b21iaW5lZFVSTEZpbHRlcnMuIik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db21iaW5lZFVSTEZpbHRlcnMuaAkocmV2aXNpb24gMTgyOTIzKQor
KysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29tYmluZWRVUkxGaWx0ZXJzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRkUGF0
dGVybih1aW50NjRfdCBwYXR0ZXJuSWQsIGNvbnN0IFZlY3RvcjxUZXJtPiYgcGF0dGVybik7CiAK
ICAgICBWZWN0b3I8TkZBPiBjcmVhdGVORkFzKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhcigpOwog
CiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcmVmaXhUcmVlVmVydGV4PiBtX3ByZWZp
eFRyZWVSb290OwpJbmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkNvbXBpbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCShyZXZpc2lvbiAxODI5
MjMpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzMsNiArMTMzLDkgQEAgc3RkOjplcnJv
cl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RQogCiAgICAgVmVjdG9yPFNlcmlhbGl6ZWRB
Y3Rpb25CeXRlPiBhY3Rpb25zOwogICAgIFZlY3Rvcjx1bnNpZ25lZD4gYWN0aW9uTG9jYXRpb25z
ID0gc2VyaWFsaXplQWN0aW9ucyhwYXJzZWRSdWxlTGlzdCwgYWN0aW9ucyk7CisgICAgY2xpZW50
LndyaXRlQWN0aW9ucyhXVEY6Om1vdmUoYWN0aW9ucykpOworICAgIGFjdGlvbnMuY2xlYXIoKTsK
KwogICAgIEhhc2hTZXQ8dWludDY0X3QsIERlZmF1bHRIYXNoPHVpbnQ2NF90Pjo6SGFzaCwgV1RG
OjpVbnNpZ25lZFdpdGhaZXJvS2V5SGFzaFRyYWl0czx1aW50NjRfdD4+IHVuaXZlcnNhbEFjdGlv
bkxvY2F0aW9uczsKIAogICAgIENvbWJpbmVkVVJMRmlsdGVycyBjb21iaW5lZFVSTEZpbHRlcnM7
CkBAIC0xNjEsNiArMTY0LDggQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250
ZW50RQogICAgICAgICBpZiAoY29udGVudEV4dGVuc2lvblJ1bGUuYWN0aW9uKCkudHlwZSgpID09
IEFjdGlvblR5cGU6Oklnbm9yZVByZXZpb3VzUnVsZXMpCiAgICAgICAgICAgICBpZ25vcmVQcmV2
aW91c1J1bGVzU2VlbiA9IHRydWU7CiAgICAgfQorICAgIHBhcnNlZFJ1bGVMaXN0LmNsZWFyKCk7
CisgICAgYWN0aW9uTG9jYXRpb25zLmNsZWFyKCk7CiAKICNpZiBDT05URU5UX0VYVEVOU0lPTlNf
UEVSRk9STUFOQ0VfUkVQT1JUSU5HCiAgICAgZG91YmxlIHBhdHRlcm5QYXJ0aXRpb25pbmdFbmQg
PSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKQEAgLTE3Miw2ICsxNzcsNyBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFCiAjZW5kaWYKIAogICAgIFZlY3Rv
cjxORkE+IG5mYXMgPSBjb21iaW5lZFVSTEZpbHRlcnMuY3JlYXRlTkZBcygpOworICAgIGNvbWJp
bmVkVVJMRmlsdGVycy5jbGVhcigpOwogICAgIGlmICghbmZhcy5zaXplKCkgJiYgdW5pdmVyc2Fs
QWN0aW9uTG9jYXRpb25zLnNpemUoKSkKICAgICAgICAgbmZhcy5hcHBlbmQoTkZBKCkpOwogCkBA
IC0yMjYsNiArMjMyLDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50
RQogICAgICAgICBERkFCeXRlY29kZUNvbXBpbGVyIGNvbXBpbGVyKGRmYSwgYnl0ZWNvZGUpOwog
ICAgICAgICBjb21waWxlci5jb21waWxlKCk7CiAgICAgfQorICAgIHVuaXZlcnNhbEFjdGlvbkxv
Y2F0aW9ucy5jbGVhcigpOwogCiAjaWYgQ09OVEVOVF9FWFRFTlNJT05TX1BFUkZPUk1BTkNFX1JF
UE9SVElORwogICAgIGRvdWJsZSB0b3RhbE5GQVRvQnl0ZUNvZGVCdWlsZFRpbWVFbmQgPSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKQEAgLTIzMyw5ICsyNDAsOSBAQCBzdGQ6OmVycm9y
X2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFCiAgICAgZGF0YUxvZ0YoIiAgICBCeXRlY29k
ZSBzaXplICV6dVxuIiwgYnl0ZWNvZGUuc2l6ZSgpKTsKICAgICBkYXRhTG9nRigiICAgIERGQSBj
b3VudCAlenVcbiIsIG5mYXMuc2l6ZSgpKTsKICNlbmRpZgorICAgIG5mYXMuY2xlYXIoKTsKIAog
ICAgIGNsaWVudC53cml0ZUJ5dGVjb2RlKFdURjo6bW92ZShieXRlY29kZSkpOwotICAgIGNsaWVu
dC53cml0ZUFjdGlvbnMoV1RGOjptb3ZlKGFjdGlvbnMpKTsKIAogICAgIHJldHVybiB7IH07CiB9
Cg==
</data>
<flag name="review"
          id="275793"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>