<?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>66399</bug_id>
          
          <creation_ts>2011-08-17 13:04:04 -0700</creation_ts>
          <short_desc>Reduce usages of String::createUninitialized</short_desc>
          <delta_ts>2011-08-17 21:23:18 -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>Web Template Framework</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>
          
          <blocked>66161</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Annie Sullivan">sullivan</reporter>
          <assigned_to name="Annie Sullivan">sullivan</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>simonjam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>452483</commentid>
    <comment_count>0</comment_count>
    <who name="Annie Sullivan">sullivan</who>
    <bug_when>2011-08-17 13:04:04 -0700</bug_when>
    <thetext>WTF::String is supposed to be immutable, but createUninitialized() allows callers to hang on to a non-const reference to the underlying data buffer. Some of these usages could be replaced by StringBuilder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452492</commentid>
    <comment_count>1</comment_count>
      <attachid>104219</attachid>
    <who name="Annie Sullivan">sullivan</who>
    <bug_when>2011-08-17 13:08:52 -0700</bug_when>
    <thetext>Created attachment 104219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452493</commentid>
    <comment_count>2</comment_count>
    <who name="Annie Sullivan">sullivan</who>
    <bug_when>2011-08-17 13:09:25 -0700</bug_when>
    <thetext>If anyone has suggestions for performance benchmark tests to run before submitting, please comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452496</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-17 13:12:04 -0700</bug_when>
    <thetext>PerformanceTests/Parser has a good test for the html parser.  I&apos;m not sure if that test hits these codepaths or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452521</commentid>
    <comment_count>4</comment_count>
    <who name="Annie Sullivan">sullivan</who>
    <bug_when>2011-08-17 13:40:49 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; PerformanceTests/Parser has a good test for the html parser.  I&apos;m not sure if that test hits these codepaths or not.

Numbers from html-parser.html look similar before/after applying my patch.

Before patch:
avg 1605.3
median 1604
stdev 9.935290634903437
min 1594
max 1629

After patch:
avg 1595.1
median 1592
stdev 6.579513659838393
min 1589
max 1609</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452548</commentid>
    <comment_count>5</comment_count>
      <attachid>104219</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-17 14:04:44 -0700</bug_when>
    <thetext>Comment on attachment 104219
Patch

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

&gt; Source/WebCore/html/parser/HTMLSourceTracker.cpp:59
&gt; +    int length = token.endIndex() - token.startIndex();

int =&gt; size_t probably</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452551</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-17 14:06:55 -0700</bug_when>
    <thetext>There shouldn&apos;t be any perf impact.  ReserveCapacity effectively does the same thing by pre-allocating the buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452843</commentid>
    <comment_count>7</comment_count>
      <attachid>104219</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 21:23:13 -0700</bug_when>
    <thetext>Comment on attachment 104219
Patch

Clearing flags on attachment: 104219

Committed r93281: &lt;http://trac.webkit.org/changeset/93281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>452844</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-17 21:23:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104219</attachid>
            <date>2011-08-17 13:08:52 -0700</date>
            <delta_ts>2011-08-17 21:23:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66399-20110817160851.patch</filename>
            <type>text/plain</type>
            <size>7475</size>
            <attacher name="Annie Sullivan">sullivan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMyMzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YWM4MzgwODkxNjYyNTBj
YjBmMGNlNmU3NjMyMGMyM2Q5OTA0YjAwLi5lYjYzOGQ3N2FlY2NiZjIyZDc0MjM4MTJlZGM2ZGJj
ZjgxOTgxMGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDgtMTcgIEFubmll
IFN1bGxpdmFuICA8c3VsbGl2YW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlZHVjZSB1c2Fn
ZXMgb2YgU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxpemVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NjM5OQorCisgICAgICAgIENvbnN0cnVjdHMgU3Ry
aW5ncyB3aXRoIFN0cmluZ0J1aWxkZXIgaW5zdGVhZCBvZiBjYWxsaW5nIGNyZWF0ZVVuaW5pdGlh
bGl6ZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzOyBubyBmdW5jdGlvbmFsIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9TdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVFbGVtZW50Ojpwcm9jZXNzKToK
KyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojp3aG9sZVRl
eHQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTb3VyY2VUcmFja2VyOjpzb3VyY2VGb3JUb2tlbik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpu
b3JtYWxpemVTcGFjZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjVXNlckRl
ZmluZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dENvZGVjVXNlckRlZmluZWQ6OmRlY29k
ZSk6CisKIDIwMTEtMDgtMTcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBGaXggY2hyb21pdW0gbWFjIGNvbXBpbGUuICBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLiogbW92ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAKaW5kZXggYTM2
NmRlOWY5MjU1YTczNTdkNGUyMmExYzQ0NTJiNTZjNjg5N2UyMi4uYzMyMTExYTM2YTg2MGUzOGJm
ZWYwY2UzZmM5ODk0YTQ0NmFjM2M1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlRWxlbWVudC5jcHAK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyLmgi
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTEyNSwyMSArMTI2LDE3IEBAIHZvaWQgU3R5bGVFbGVtZW50Ojpwcm9jZXNzKEVs
ZW1lbnQqIGUpCiAgICAgICAgICAgICByZXN1bHRMZW5ndGggKz0gbGVuZ3RoOwogICAgICAgICB9
CiAgICAgfQotICAgIFVDaGFyKiB0ZXh0OwotICAgIFN0cmluZyBzaGVldFRleHQgPSBTdHJpbmc6
OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVzdWx0TGVuZ3RoLCB0ZXh0KTsKKyAgICBTdHJpbmdCdWls
ZGVyIHNoZWV0VGV4dDsKKyAgICBzaGVldFRleHQucmVzZXJ2ZUNhcGFjaXR5KHJlc3VsdExlbmd0
aCk7CiAKLSAgICBVQ2hhciogcCA9IHRleHQ7CiAgICAgZm9yIChOb2RlKiBjID0gZS0+Zmlyc3RD
aGlsZCgpOyBjOyBjID0gYy0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICBpZiAoaXNWYWxpZFN0
eWxlQ2hpbGQoYykpIHsKLSAgICAgICAgICAgIFN0cmluZyBub2RlVmFsdWUgPSBjLT5ub2RlVmFs
dWUoKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG5vZGVMZW5ndGggPSBub2RlVmFsdWUubGVuZ3Ro
KCk7Ci0gICAgICAgICAgICBtZW1jcHkocCwgbm9kZVZhbHVlLmNoYXJhY3RlcnMoKSwgbm9kZUxl
bmd0aCAqIHNpemVvZihVQ2hhcikpOwotICAgICAgICAgICAgcCArPSBub2RlTGVuZ3RoOworICAg
ICAgICAgICAgc2hlZXRUZXh0LmFwcGVuZChjLT5ub2RlVmFsdWUoKSk7CiAgICAgICAgIH0KICAg
ICB9Ci0gICAgQVNTRVJUKHAgPT0gdGV4dCArIHJlc3VsdExlbmd0aCk7CisgICAgQVNTRVJUKHNo
ZWV0VGV4dC5sZW5ndGgoKSA9PSByZXN1bHRMZW5ndGgpOwogCi0gICAgY3JlYXRlU2hlZXQoZSwg
bV9zdGFydExpbmVOdW1iZXIsIHNoZWV0VGV4dCk7CisgICAgY3JlYXRlU2hlZXQoZSwgbV9zdGFy
dExpbmVOdW1iZXIsIHNoZWV0VGV4dC50b1N0cmluZygpKTsKIH0KIAogdm9pZCBTdHlsZUVsZW1l
bnQ6OmNyZWF0ZVNoZWV0KEVsZW1lbnQqIGUsIGludCBzdGFydExpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgdGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAppbmRleCA0OTBlMTNmZTQ5NWQzN2FlZmZmMGQ1YmFl
NDFiOTJkNWNiNDMxZGEzLi5iODhjODI5OGFkMmM4ZTBlZWY0Yzk4OGE3MWJlYTk5YjJlYzU3ZTNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RleHQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjZW5kaWYKIAogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTEyNCwyMSArMTI1LDE3IEBAIFN0cmluZyBU
ZXh0Ojp3aG9sZVRleHQoKSBjb25zdAogICAgICAgICAgICAgQ1JBU0goKTsKICAgICAgICAgcmVz
dWx0TGVuZ3RoICs9IGRhdGEubGVuZ3RoKCk7CiAgICAgfQotICAgIFVDaGFyKiByZXN1bHREYXRh
OwotICAgIFN0cmluZyByZXN1bHQgPSBTdHJpbmc6OmNyZWF0ZVVuaW5pdGlhbGl6ZWQocmVzdWx0
TGVuZ3RoLCByZXN1bHREYXRhKTsKLSAgICBVQ2hhciogcCA9IHJlc3VsdERhdGE7CisgICAgU3Ry
aW5nQnVpbGRlciByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eShyZXN1bHRMZW5n
dGgpOwogICAgIGZvciAoY29uc3QgTm9kZSogbiA9IHN0YXJ0VGV4dDsgbiAhPSBvbmVQYXN0RW5k
VGV4dDsgbiA9IG4tPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKCFuLT5pc1RleHROb2Rl
KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgY29uc3QgVGV4dCogdCA9IHN0YXRp
Y19jYXN0PGNvbnN0IFRleHQqPihuKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBkYXRhID0gdC0+
ZGF0YSgpOwotICAgICAgICB1bnNpZ25lZCBkYXRhTGVuZ3RoID0gZGF0YS5sZW5ndGgoKTsKLSAg
ICAgICAgbWVtY3B5KHAsIGRhdGEuY2hhcmFjdGVycygpLCBkYXRhTGVuZ3RoICogc2l6ZW9mKFVD
aGFyKSk7Ci0gICAgICAgIHAgKz0gZGF0YUxlbmd0aDsKKyAgICAgICAgcmVzdWx0LmFwcGVuZCh0
LT5kYXRhKCkpOwogICAgIH0KLSAgICBBU1NFUlQocCA9PSByZXN1bHREYXRhICsgcmVzdWx0TGVu
Z3RoKTsKKyAgICBBU1NFUlQocmVzdWx0Lmxlbmd0aCgpID09IHJlc3VsdExlbmd0aCk7CiAKLSAg
ICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAogUGFz
c1JlZlB0cjxUZXh0PiBUZXh0OjpyZXBsYWNlV2hvbGVUZXh0KGNvbnN0IFN0cmluZyYgbmV3VGV4
dCwgRXhjZXB0aW9uQ29kZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MU291cmNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
U291cmNlVHJhY2tlci5jcHAKaW5kZXggNzBjZjcwOTE1YThiZjhhOTk1MDE4OTNlZWNlYzlmMWM5
OGJhZmVhMS4uM2IwODkyZDY5NmI0NjBkMDc4NjczNzVhYTI5Y2FkYjNlMjI4ZjI1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNvdXJjZVRyYWNrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxTb3VyY2VUcmFja2VyLmNwcApAQCAt
MjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTFNvdXJj
ZVRyYWNrZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNTUsMTQgKzU2LDE1IEBAIFN0cmluZyBIVE1MU291cmNlVHJh
Y2tlcjo6c291cmNlRm9yVG9rZW4oY29uc3QgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgcmV0
dXJuIG1fY2FjaGVkU291cmNlRm9yVG9rZW47CiAKICAgICBBU1NFUlQoIXRva2VuLnN0YXJ0SW5k
ZXgoKSk7Ci0gICAgVUNoYXIqIGRhdGEgPSAwOwotICAgIGludCBsZW5ndGggPSB0b2tlbi5lbmRJ
bmRleCgpIC0gdG9rZW4uc3RhcnRJbmRleCgpIC0gbV9zb3VyY2VGcm9tUHJldmlvdXNTZWdtZW50
cy5sZW5ndGgoKTsKLSAgICBTdHJpbmcgc291cmNlID0gU3RyaW5nOjpjcmVhdGVVbmluaXRpYWxp
emVkKGxlbmd0aCwgZGF0YSk7CisgICAgaW50IGxlbmd0aCA9IHRva2VuLmVuZEluZGV4KCkgLSB0
b2tlbi5zdGFydEluZGV4KCk7CisgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7CisgICAgc291cmNl
LnJlc2VydmVDYXBhY2l0eShsZW5ndGgpOworICAgIHNvdXJjZS5hcHBlbmQobV9zb3VyY2VGcm9t
UHJldmlvdXNTZWdtZW50cyk7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkg
ewotICAgICAgICBkYXRhW2ldID0gKm1fc291cmNlOworICAgICAgICBzb3VyY2UuYXBwZW5kKCpt
X3NvdXJjZSk7CiAgICAgICAgIG1fc291cmNlLmFkdmFuY2UoKTsKICAgICB9Ci0gICAgbV9jYWNo
ZWRTb3VyY2VGb3JUb2tlbiA9IG1fc291cmNlRnJvbVByZXZpb3VzU2VnbWVudHMgKyBzb3VyY2U7
CisgICAgbV9jYWNoZWRTb3VyY2VGb3JUb2tlbiA9IHNvdXJjZS50b1N0cmluZygpOwogICAgIHJl
dHVybiBtX2NhY2hlZFNvdXJjZUZvclRva2VuOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDA2ZDM1YTQ3OGFhM2VmY2JkOThjZTc5MjhlODllNzEy
ZjU1OGJlMTIuLjk4ZWVjZjhkODUwZTZhMmE0OTBlMTExMjg2MjI1NmI1NGZiMmM3OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiV2lkdGhJdGVyYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXVEY7CkBAIC0yMjMsMTMgKzIyNCwxMyBAQCBpbnQgRm9udDo6b2Zmc2V0Rm9yUG9zaXRpb24o
Y29uc3QgVGV4dFJ1biYgcnVuLCBmbG9hdCB4LCBib29sIGluY2x1ZGVQYXJ0aWFsR2x5cAogCiBT
dHJpbmcgRm9udDo6bm9ybWFsaXplU3BhY2VzKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBsZW5ndGgpCiB7Ci0gICAgVUNoYXIqIGJ1ZmZlcjsKLSAgICBTdHJpbmcgbm9ybWFsaXpl
ZCA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7CisgICAgU3Ry
aW5nQnVpbGRlciBub3JtYWxpemVkOworICAgIG5vcm1hbGl6ZWQucmVzZXJ2ZUNhcGFjaXR5KGxl
bmd0aCk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAg
ICAgIGJ1ZmZlcltpXSA9IG5vcm1hbGl6ZVNwYWNlcyhjaGFyYWN0ZXJzW2ldKTsKKyAgICAgICAg
bm9ybWFsaXplZC5hcHBlbmQobm9ybWFsaXplU3BhY2VzKGNoYXJhY3RlcnNbaV0pKTsKIAotICAg
IHJldHVybiBub3JtYWxpemVkOworICAgIHJldHVybiBub3JtYWxpemVkLnRvU3RyaW5nKCk7CiB9
CiAKIHN0YXRpYyBib29sIHNob3VsZFVzZUZvbnRTbW9vdGhpbmcgPSB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNVc2VyRGVmaW5lZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcApp
bmRleCBkODFkYzc2MjgxMTNmY2NjNjEwNmQ5OThmMDc3OTViMGI0NzgwYzRjLi4wNmRkOTFmMzlh
OWQ0M2RkZGQwYjJiMGQ3ZmYxN2FjNGRkZmM2M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY1VzZXJEZWZpbmVkLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01MSwxNSArNTIsMTUgQEAgdm9pZCBUZXh0Q29kZWNVc2VyRGVmaW5lZDo6
cmVnaXN0ZXJDb2RlY3MoVGV4dENvZGVjUmVnaXN0cmFyIHJlZ2lzdHJhcikKIAogU3RyaW5nIFRl
eHRDb2RlY1VzZXJEZWZpbmVkOjpkZWNvZGUoY29uc3QgY2hhciogYnl0ZXMsIHNpemVfdCBsZW5n
dGgsIGJvb2wsIGJvb2wsIGJvb2wmKQogewotICAgIFVDaGFyKiBidWZmZXI7Ci0gICAgU3RyaW5n
IHJlc3VsdCA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChsZW5ndGgsIGJ1ZmZlcik7Cisg
ICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVDYXBhY2l0eShsZW5n
dGgpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewogICAgICAg
ICBzaWduZWQgY2hhciBjID0gYnl0ZXNbaV07Ci0gICAgICAgIGJ1ZmZlcltpXSA9IGMgJiAweEY3
RkY7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGMgJiAweEY3RkYp
KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHQudG9TdHJp
bmcoKTsKIH0KIAogc3RhdGljIENTdHJpbmcgZW5jb2RlQ29tcGxleFVzZXJEZWZpbmVkKGNvbnN0
IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3RoLCBVbmVuY29kYWJsZUhhbmRsaW5nIGhh
bmRsaW5nKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>