<?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>16861</bug_id>
          
          <creation_ts>2008-01-13 09:48:03 -0800</creation_ts>
          <short_desc>get rid of unnecessary string copying</short_desc>
          <delta_ts>2008-01-13 11:20:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>67117</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-13 09:48:03 -0800</bug_when>
    <thetext>After StringImpl was made immutable, there are still some remaining callers that were making copies of strings for no reason. The only valid reason nowadays is thread safety.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67118</commentid>
    <comment_count>1</comment_count>
      <attachid>18423</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-13 09:58:19 -0800</bug_when>
    <thetext>Created attachment 18423
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67119</commentid>
    <comment_count>2</comment_count>
      <attachid>18423</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-13 11:07:42 -0800</bug_when>
    <thetext>Comment on attachment 18423
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67124</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-13 11:20:11 -0800</bug_when>
    <thetext>Committed revision 29452.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18423</attachid>
            <date>2008-01-13 09:58:19 -0800</date>
            <delta_ts>2008-01-13 11:07:42 -0800</delta_ts>
            <desc>patch</desc>
            <filename>StringCopyPatch.txt</filename>
            <type>text/plain</type>
            <size>13795</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTQ1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNDggQEAKLTIwMDgtMDEtMTMgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNv
bT4KKzIwMDgtMDEtMTMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NjEKKyAgICAgICAgICBnZXQgcmlkIG9mIHVubmVj
ZXNzYXJ5IHN0cmluZyBjb3B5aW5nCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldERvbWFpbik6IFJlbW92ZWQgdW5uZWVkZWQgY2Fs
bCB0byBjb3B5LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBhcnNlUXVhbGlmaWVkTmFt
ZSk6IFJlbW92ZWQgdW5uZWVkZWQgY2FsbCB0byBjb3B5LCBhbmQKKyAgICAgICAgdW5uZWVkZWQg
bGVuZ3RoIGFyZ3VtZW50IHRvIHN1YnN0cmluZywgd2hpY2ggc3RvcHMgYXQgdGhlIGVuZCBvZiB0
aGUgc3RyaW5nCisgICAgICAgIGlmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbGVuZ3RoLgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0ZUF0dHJpYnV0ZU5TKTogUmVwbGFjZWQgY29kZSB0
aGF0IHdhcyBjYWxsaW5nIGNvcHkKKyAgICAgICAgd2l0aCBtb3JlLWVmZmljaWVudCBjb2RlIHVz
aW5nIHRoZSBzdWJzdHJpbmcgZnVuY3Rpb24uCisgICAgICAgICogZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkRWxlbWVudDo6YWRkQ1NTQ29sb3IpOiBSZW1v
dmVkIHVubmVlZGVkIGNhbGwgdG8gY29weS4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydEludG9U
ZXh0Tm9kZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2Rl
Q29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZCk6IFJlbW92ZWQKKyAgICAgICAgdW5u
ZWVkZWQgY29weSBhbmQgYWxzbyBpbml0aWFsaXplZCB0ZXh0IGluc3RlYWQgb2YgYXNzaWduaW5n
IHRvIGl0LgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9B
cHBseSk6IFJlbW92ZWQgcmVkdW5kYW50IGFzc2VydGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJ
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkpOiBEaXR0by4KIAotICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKGJ1aWxkIGZpeCkuCisgICAgICAgICogZWRpdGluZy9odG1sZWRp
dGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3Bh
Y2UpOiBSZW1vdmVkIHVubmVlZGVkIGNhbGwgdG8gY29weS4KKyAgICAgICAgVGhpcyBvbmUgd2Fz
IHBhcnRpY3VsYXJseSBiYWQgc2luY2Ugd2UganVzdCB0dXJuZWQgYXJvdW5kIGFuZCBjb3BpZWQg
aXQgYWdhaW4hCisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzdHJpbmdWYWx1ZUZvclJhbmdlKTogUmVtb3ZlZCB1bm5lZWRlZCBjYWxsIHRvIGNvcHku
CisKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtT3BlbkluaXRpYWxpemF0aW9uKTogQ2hhbmdlZCBs
b2dnaW5nIGNvZGUgdG8gbm90CisgICAgICAgIGdldCB0aGUgcGF0aCBmcm9tIHRoZSBkYXRhYmFz
ZSBvYmplY3QuIFRoaXMgd2FzIHRoZSBvbmx5IHJlYXNvbiB0aGUgZGF0YWJhc2UKKyAgICAgICAg
aGFkIHRvIGtlZXAgaXRzIHBhdGggYXJvdW5kLgorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NR
TGl0ZURhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZURhdGFiYXNlOjpvcGVu
KTogVXNlIGEgbG9jYWwgdmFyaWFibGUgaW5zdGVhZCBvZiBhIGRhdGEgbWVtYmVyIHRvCisgICAg
ICAgIGNvbnZlcnQgdGhlIHN0cmluZyB0byBhIG51bGwtdGVybWluYXRlZCBvbmUuCisgICAgICAg
IChXZWJDb3JlOjpTUUxpdGVEYXRhYmFzZTo6Y2xvc2UpOiBSZW1vdmVkIHRoZSBjb2RlIHRvIGNs
ZWFyIG91dCBtX3BhdGguCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmg6
IFJlbW92ZWQgdGhlIG1fcGF0aCBkYXRhIG1lbWJlciBhbmQgdGhlIHBhdGgKKyAgICAgICAgZnVu
Y3RpbyBtZW1iZXIuIEFsc28gdHdlYWtlZCBmb3JtYXR0aW5nIGFuZCBjb21tZW50cyBhIGJpdC4g
UmVtb3ZlZCB0aGUgdW51c2VkCisgICAgICAgIGVzY2FwZVNRTFN0cmluZyBmdW5jdGlvbi4KKwor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvU3RyaW5nLmNwcDogKFdlYkNvcmU6Om9wZXJhdG9yKyk6
IFJlbW92ZWQgdW5lZWRlZCBjYWxscyB0byBjb3B5LgorCisyMDA4LTAxLTEzICBPbGl2ZXIgSHVu
dCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXR0ZW1wdCB0byBmaXggUVQgYnVpbGQK
IApAQCAtMTUxNiw4ICsxNTU4LDYgQEAKIAogMjAwOC0wMS0wOCAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCi0gICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoQnVpbGQgZml4KS4K
LQogICAgICAgICBTZXQgdGhlIEVOQUJMRV9TVkdfRk9OVFMgZmxhZyBpbiBXaW5kb3dzIGJ1aWxk
LCBub3cgYnVpbGRzLCAKICAgICAgICAgSSdtIG5vdCBzdXJlIGlmIGl0IGp1c3QgY2F1c2VkIHRo
ZSByaWdodCBmaWxlcyB0byByZWdlbmVyYXRlLAogICAgICAgICBvciBpZiB0aGVyZSdzIHNvbWUg
Y29uZmlndXJhdGlvbiB3ZWlyZG5lc3MgaW4gdGhlIG5vbi1TVkctZm9udHMKQEAgLTE2MzIyLDcg
KzE2MzYyLDcgQEAKIAogMjAwNy0xMS0wOSAgU2ltb24gSGF1c21hbm4gIDxoYXVzbWFubkBrZGUu
b3JnPgogCi0gICAgICAgIFJldmlld2VkIGJ5IG5vYm9keSwgYnVpbGQvbGluayBmaXggZm9yIFF0
L1dpbmRvd3MuCisgICAgICAgIGJ1aWxkL2xpbmsgZml4IGZvciBRdC9XaW5kb3dzLgogCiAgICAg
ICAgIHVzZXJJZGxlVGltZSgpIGlzIHN0dWJiZWQgaW4gd2luL1N5c3RlbVRpbWVXaW4uY3BwLCBz
byBkb24ndAogICAgICAgICBkZWZpbmUgaXQgdHdpY2UuCkBAIC0xNzg3Miw4ICsxNzkxMiw2IEBA
CiAgICAgICAgIExHUEwnZWQgZmlsZXMgY29udGFpbiBpbmNvcnJlY3QgRlNGIGFkZHJlc3MKICAg
ICAgICAgPGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODg1PgogCi0g
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoZm9sbG93LXVwIGZpeCkuCi0KICAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwOgogICAgICAgICAqIGtzdmcy
L3N2Zy9TVkdFeGNlcHRpb24uaWRsOgogICAgICAgICAqIGtzdmcyL3N2Zy9TVkdUZXh0UGF0aEVs
ZW1lbnQuY3BwOgpAQCAtMTg3MTEsOCArMTg3NDksNiBAQAogCiAyMDA3LTEwLTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAotICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFku
Ci0KICAgICAgICAgQWRkIG1pc3NpbmcgZmlsZXMuCiAKICAgICAgICAgKiBodG1sL1ZvaWRDYWxs
YmFjay5jcHA6IEFkZGVkLgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjk0NDkpCisrKyBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MjgsNyArMjYyOCw3IEBA
IHZvaWQgRG9jdW1lbnQ6OnNldERvbWFpbihjb25zdCBTdHJpbmcmIG4KICAgICBpZiAobmV3TGVu
Z3RoID49IG9sZExlbmd0aCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHRlc3QgPSBk
b21haW4oKS5jb3B5KCk7CisgICAgU3RyaW5nIHRlc3QgPSBkb21haW4oKTsKICAgICAvLyBDaGVj
ayB0aGF0IGl0J3MgYSBzdWJkb21haW4sIG5vdCBlLmcuICJlYmtpdC5vcmciCiAgICAgaWYgKHRl
c3Rbb2xkTGVuZ3RoIC0gbmV3TGVuZ3RoIC0gMV0gIT0gJy4nKQogICAgICAgICByZXR1cm47CkBA
IC0yNzEwLDEwICsyNzEwLDEwIEBAIGJvb2wgRG9jdW1lbnQ6OnBhcnNlUXVhbGlmaWVkTmFtZShj
b25zdCAKIAogICAgIGlmICghc2F3Q29sb24pIHsKICAgICAgICAgcHJlZml4ID0gU3RyaW5nKCk7
Ci0gICAgICAgIGxvY2FsTmFtZSA9IHF1YWxpZmllZE5hbWUuY29weSgpOworICAgICAgICBsb2Nh
bE5hbWUgPSBxdWFsaWZpZWROYW1lOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHByZWZpeCA9IHF1
YWxpZmllZE5hbWUuc3Vic3RyaW5nKDAsIGNvbG9uUG9zKTsKLSAgICAgICAgbG9jYWxOYW1lID0g
cXVhbGlmaWVkTmFtZS5zdWJzdHJpbmcoY29sb25Qb3MgKyAxLCBsZW5ndGggLSAoY29sb25Qb3Mg
KyAxKSk7CisgICAgICAgIGxvY2FsTmFtZSA9IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5nKGNvbG9u
UG9zICsgMSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0zNDAxLDEwICszNDAxLDgg
QEAgUGFzc1JlZlB0cjxBdHRyPiBEb2N1bWVudDo6Y3JlYXRlQXR0cmlidQogICAgIFN0cmluZyBw
cmVmaXg7CiAgICAgaW50IGNvbG9ucG9zOwogICAgIGlmICgoY29sb25wb3MgPSBxdWFsaWZpZWRO
YW1lLmZpbmQoJzonKSkgPj0gMCkgewotICAgICAgICBwcmVmaXggPSBxdWFsaWZpZWROYW1lLmNv
cHkoKTsKLSAgICAgICAgbG9jYWxOYW1lID0gcXVhbGlmaWVkTmFtZS5jb3B5KCk7Ci0gICAgICAg
IHByZWZpeC50cnVuY2F0ZShjb2xvbnBvcyk7Ci0gICAgICAgIGxvY2FsTmFtZS5yZW1vdmUoMCwg
Y29sb25wb3MrMSk7CisgICAgICAgIHByZWZpeCA9IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5nKDAs
IGNvbG9ucG9zKTsKKyAgICAgICAgbG9jYWxOYW1lID0gcXVhbGlmaWVkTmFtZS5zdWJzdHJpbmco
Y29sb25wb3MgKyAxKTsKICAgICB9CiAKICAgICBpZiAoIWlzVmFsaWROYW1lKGxvY2FsTmFtZSkp
IHsKSW5kZXg6IFdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyOTQ0OSkKKysrIFdlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsNyArMzMyLDcgQEAg
dm9pZCBTdHlsZWRFbGVtZW50OjphZGRDU1NMZW5ndGgoTWFwcGVkQQogfQogCiAvKiBjb2xvciBw
YXJzaW5nIHRoYXQgdHJpZXMgdG8gbWF0Y2ggYXMgY2xvc2UgYXMgcG9zc2libGUgSUUgNi4gKi8K
LXZvaWQgU3R5bGVkRWxlbWVudDo6YWRkQ1NTQ29sb3IoTWFwcGVkQXR0cmlidXRlKiBhdHRyLCBp
bnQgaWQsIGNvbnN0IFN0cmluZyAmYykKK3ZvaWQgU3R5bGVkRWxlbWVudDo6YWRkQ1NTQ29sb3Io
TWFwcGVkQXR0cmlidXRlKiBhdHRyLCBpbnQgaWQsIGNvbnN0IFN0cmluZyYgYykKIHsKICAgICAv
LyB0aGlzIGlzIHRoZSBvbmx5IGNhc2Ugbm8gY29sb3IgZ2V0cyBhcHBsaWVkIGluIElFLgogICAg
IGlmICghYy5sZW5ndGgoKSkKQEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIFN0eWxlZEVsZW1lbnQ6
OmFkZENTU0NvbG9yKE1hcHBlZEF0CiAgICAgaWYgKGF0dHItPmRlY2woKS0+c2V0UHJvcGVydHko
aWQsIGMsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFN0cmluZyBjb2xvciA9
IGMuY29weSgpOworICAgIFN0cmluZyBjb2xvciA9IGM7CiAgICAgLy8gbm90IHNvbWV0aGluZyB0
aGF0IGZpdHMgdGhlIHNwZWNzLgogICAgIAogICAgIC8vIHdlJ3JlIGVtdWxhdGluZyBJRXMgY29s
b3IgcGFyc2VyIGhlcmUuIEl0IG1hcHMgdHJhbnNwYXJlbnQgdG8gYmxhY2ssIG90aGVyd2lzZSBp
dCB0cmllcyB0byBidWlsZCBhIHJnYiB2YWx1ZQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0luc2Vy
dEludG9UZXh0Tm9kZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9J
bnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kLmNwcAkocmV2aXNpb24gMjk0NDkpCisrKyBXZWJDb3Jl
L2VkaXRpbmcvSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzAsMjIgKzMwLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSW5zZXJ0
SW50b1RleHROb2RlQ29tbWFuZDo6SW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZChUZXh0ICpub2Rl
LCBpbnQgb2Zmc2V0LCBjb25zdCBTdHJpbmcgJnRleHQpCi0gICAgOiBFZGl0Q29tbWFuZChub2Rl
LT5kb2N1bWVudCgpKSwgbV9ub2RlKG5vZGUpLCBtX29mZnNldChvZmZzZXQpCitJbnNlcnRJbnRv
VGV4dE5vZGVDb21tYW5kOjpJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kKFRleHQqIG5vZGUsIGlu
dCBvZmZzZXQsIGNvbnN0IFN0cmluZyYgdGV4dCkKKyAgICA6IEVkaXRDb21tYW5kKG5vZGUtPmRv
Y3VtZW50KCkpCisgICAgLCBtX25vZGUobm9kZSkKKyAgICAsIG1fb2Zmc2V0KG9mZnNldCkKKyAg
ICAsIG1fdGV4dCh0ZXh0KQogewotICAgIEFTU0VSVChtX25vZGUpOwotICAgIEFTU0VSVChtX29m
ZnNldCA+PSAwKTsKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKG9mZnNldCA+PSAwKTsK
ICAgICBBU1NFUlQoIXRleHQuaXNFbXB0eSgpKTsKLSAgICAKLSAgICBtX3RleHQgPSB0ZXh0LmNv
cHkoKTsgLy8gbWFrZSBhIGNvcHkgdG8gZW5zdXJlIHRoYXQgdGhlIHN0cmluZyBuZXZlciBjaGFu
Z2VzCiB9CiAKIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6ZG9BcHBseSgpCiB7Ci0g
ICAgQVNTRVJUKG1fbm9kZSk7Ci0gICAgQVNTRVJUKG1fb2Zmc2V0ID49IDApOwotICAgIEFTU0VS
VCghbV90ZXh0LmlzRW1wdHkoKSk7Ci0KICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBt
X25vZGUtPmluc2VydERhdGEobV9vZmZzZXQsIG1fdGV4dCwgZWMpOwogICAgIEFTU0VSVChlYyA9
PSAwKTsKQEAgLTUzLDEwICs1MCw2IEBAIHZvaWQgSW5zZXJ0SW50b1RleHROb2RlQ29tbWFuZDo6
ZG9BcHBseSgKIAogdm9pZCBJbnNlcnRJbnRvVGV4dE5vZGVDb21tYW5kOjpkb1VuYXBwbHkoKQog
ewotICAgIEFTU0VSVChtX25vZGUpOwotICAgIEFTU0VSVChtX29mZnNldCA+PSAwKTsKLSAgICBB
U1NFUlQoIW1fdGV4dC5pc0VtcHR5KCkpOwotCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAg
ICAgbV9ub2RlLT5kZWxldGVEYXRhKG1fb2Zmc2V0LCBtX3RleHQubGVuZ3RoKCksIGVjKTsKICAg
ICBBU1NFUlQoZWMgPT0gMCk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAJKHJldmlzaW9u
IDI5NDQ5KQorKysgV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzcxLDcgKzM3MSw3IEBAIFN0cmluZyBzdHJpbmdXaXRoUmViYWxhbmNlZFdoaXRlc3Bh
Y2UoY28KICAgICBzdGF0aWMgRGVwcmVjYXRlZFN0cmluZyBuYnNwKCJceGEwIik7CiAgICAgc3Rh
dGljIERlcHJlY2F0ZWRTdHJpbmcgcGF0dGVybigiIFx4YTAiKTsKIAotICAgIERlcHJlY2F0ZWRT
dHJpbmcgcmViYWxhbmNlZFN0cmluZyA9IHN0cmluZy5jb3B5KCkuZGVwcmVjYXRlZFN0cmluZygp
OworICAgIERlcHJlY2F0ZWRTdHJpbmcgcmViYWxhbmNlZFN0cmluZyA9IHN0cmluZy5kZXByZWNh
dGVkU3RyaW5nKCk7CiAKICAgICByZWJhbGFuY2VkU3RyaW5nLnJlcGxhY2Uobm9CcmVha1NwYWNl
LCAnICcpOwogICAgIHJlYmFsYW5jZWRTdHJpbmcucmVwbGFjZSgnXG4nLCAnICcpOwpJbmRleDog
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAJKHJldmlzaW9uIDI5NDQ5KQorKysgV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCwxMiArMjA0LDEyIEBAIHN0YXRpYyB2b2lkIGFwcGVu
ZFF1b3RlZFVSTEF0dHJpYnV0ZVZhbHUKICAgICByZXN1bHQuYXBwZW5kKHF1b3RlQ2hhcik7ICAg
IAogfQogICAgIAotc3RhdGljIFN0cmluZyBzdHJpbmdWYWx1ZUZvclJhbmdlKGNvbnN0IE5vZGUg
Km5vZGUsIGNvbnN0IFJhbmdlICpyYW5nZSkKK3N0YXRpYyBTdHJpbmcgc3RyaW5nVmFsdWVGb3JS
YW5nZShjb25zdCBOb2RlKiBub2RlLCBjb25zdCBSYW5nZSogcmFuZ2UpCiB7CiAgICAgaWYgKCFy
YW5nZSkKICAgICAgICAgcmV0dXJuIG5vZGUtPm5vZGVWYWx1ZSgpOwogCi0gICAgU3RyaW5nIHN0
ciA9IG5vZGUtPm5vZGVWYWx1ZSgpLmNvcHkoKTsKKyAgICBTdHJpbmcgc3RyID0gbm9kZS0+bm9k
ZVZhbHVlKCk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBpZiAobm9kZSA9PSByYW5nZS0+
ZW5kQ29udGFpbmVyKGVjKSkKICAgICAgICAgc3RyLnRydW5jYXRlKHJhbmdlLT5lbmRPZmZzZXQo
ZWMpKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHJldmlzaW9uIDI5
NDQ5KQorKysgV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTE4LDcgKzExMTgsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybU9wZW5J
bml0aWFsaXphCiAgICAgfQogICAgIAogICAgIGlmICghaXNWYWxpZERhdGFiYXNlKG1fc3luY0RC
KSkgewotICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiJXMgaXMgbWlzc2luZyBvciBpbiBhbiBp
bnZhbGlkIHN0YXRlIC0gcmVjb25zdHJ1Y3RpbmciLCBtX3N5bmNEQi5wYXRoKCkuYXNjaWkoKS5k
YXRhKCkpOworICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiJXMgaXMgbWlzc2luZyBvciBpbiBh
biBpbnZhbGlkIHN0YXRlIC0gcmVjb25zdHJ1Y3RpbmciLCBtX2NvbXBsZXRlRGF0YWJhc2VQYXRo
LmFzY2lpKCkuZGF0YSgpKTsKICAgICAgICAgbV9zeW5jREIuY2xlYXJBbGxUYWJsZXMoKTsKICAg
ICAgICAgY3JlYXRlRGF0YWJhc2VUYWJsZXMobV9zeW5jREIpOwogICAgIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAJKHJldmlzaW9uIDI5NDQ5KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MCwxMCArNjAsOSBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjpvcGVuKGNvbnN0IFN0cmluZyYgCiB7
CiAgICAgY2xvc2UoKTsKICAgICAKLSAgICAvL1NRTGl0ZSBleHBlY3RzIGEgbnVsbCB0ZXJtaW5h
dG9yIG9uIGl0cyBVVEYxNiBzdHJpbmdzCi0gICAgbV9wYXRoID0gZmlsZW5hbWUuY29weSgpOwot
ICAgIAotICAgIG1fbGFzdEVycm9yID0gc3FsaXRlM19vcGVuMTYobV9wYXRoLmNoYXJhY3RlcnNX
aXRoTnVsbFRlcm1pbmF0aW9uKCksICZtX2RiKTsKKyAgICAvLyBTUUxpdGUgZXhwZWN0cyBhIG51
bGwgdGVybWluYXRvciBvbiBpdHMgVVRGLTE2IHN0cmluZ3MuCisgICAgU3RyaW5nIHBhdGggPSBm
aWxlbmFtZTsKKyAgICBtX2xhc3RFcnJvciA9IHNxbGl0ZTNfb3BlbjE2KHBhdGguY2hhcmFjdGVy
c1dpdGhOdWxsVGVybWluYXRpb24oKSwgJm1fZGIpOwogICAgIGlmIChtX2xhc3RFcnJvciAhPSBT
UUxJVEVfT0spIHsKICAgICAgICAgTE9HX0VSUk9SKCJTUUxpdGUgZGF0YWJhc2UgZmFpbGVkIHRv
IGxvYWQgZnJvbSAlc1xuQ2F1c2UgLSAlcyIsIGZpbGVuYW1lLmFzY2lpKCkuZGF0YSgpLAogICAg
ICAgICAgICAgc3FsaXRlM19lcnJtc2cobV9kYikpOwpAQCAtODUsNyArODQsNiBAQCB2b2lkIFNR
TGl0ZURhdGFiYXNlOjpjbG9zZSgpCiB7CiAgICAgaWYgKG1fZGIpIHsKICAgICAgICAgc3FsaXRl
M19jbG9zZShtX2RiKTsKLSAgICAgICAgbV9wYXRoLnRydW5jYXRlKDApOwogICAgICAgICBtX2Ri
ID0gMDsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuaAko
cmV2aXNpb24gMjk0NDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgSnVzdGluIEhheWdvb2QgKGpoYXlnb29kQHJlYWt0aXguY29t
KQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dApAQCAtNTEsMTcgKzUxLDE0IEBAIGV4dGVybiBjb25zdCBpbnQg
U1FMUmVzdWx0Um93OwogZXh0ZXJuIGNvbnN0IGludCBTUUxSZXN1bHRTY2hlbWE7CiBleHRlcm4g
Y29uc3QgaW50IFNRTFJlc3VsdEZ1bGw7CiAKLQotY2xhc3MgU1FMaXRlRGF0YWJhc2UgOiBwdWJs
aWMgTm9uY29weWFibGUKLXsKLWZyaWVuZCBjbGFzcyBTUUxpdGVUcmFuc2FjdGlvbjsKK2NsYXNz
IFNRTGl0ZURhdGFiYXNlIDogcHVibGljIE5vbmNvcHlhYmxlIHsKKyAgICBmcmllbmQgY2xhc3Mg
U1FMaXRlVHJhbnNhY3Rpb247CiBwdWJsaWM6CiAgICAgU1FMaXRlRGF0YWJhc2UoKTsKICAgICB+
U1FMaXRlRGF0YWJhc2UoKTsKIAogICAgIGJvb2wgb3Blbihjb25zdCBTdHJpbmcmIGZpbGVuYW1l
KTsKICAgICBib29sIGlzT3BlbigpIGNvbnN0IHsgcmV0dXJuIG1fZGI7IH0KLSAgICBTdHJpbmcg
cGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIHZvaWQgY2xvc2UoKTsKIAogICAg
IGJvb2wgZXhlY3V0ZUNvbW1hbmQoY29uc3QgU3RyaW5nJik7CkBAIC03OSw3ICs3Niw2IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEJ1c3lUaW1lb3V0KGludCBtcyk7CiAgICAgdm9pZCBzZXRCdXN5
SGFuZGxlcihpbnQoKikodm9pZCosIGludCkpOwogICAgIAotICAgIC8vIFRPRE8gLSBhZGQgcHJh
Z21hIGFuZCBzcWxpdGVfbWFzdGVyIGFjY2Vzc29ycyBoZXJlCiAgICAgdm9pZCBzZXRGdWxsc3lu
Yyhib29sKTsKICAgICAKICAgICAvLyBHZXRzL3NldHMgdGhlIG1heGltdW0gc2l6ZSBpbiBieXRl
cwpAQCAtOTMsOSArODksNyBAQCBwdWJsaWM6CiAgICAgLy8gRlVMTCAtIEFueSB3cml0aW5nIGNh
bGxzIHRvIHRoZSBEQiBibG9jayB1bnRpbCB0aGUgZGF0YSBpcyBhY3R1YWxseSBvbiB0aGUgZGlz
ayBzdXJmYWNlCiAgICAgLy8gTk9STUFMIC0gU1FMaXRlIHBhdXNlcyBhdCBzb21lIGNyaXRpY2Fs
IG1vbWVudHMgd2hlbiB3cml0aW5nLCBidXQgbXVjaCBsZXNzIHRoYW4gRlVMTAogICAgIC8vIE9G
RiAtIENhbGxzIHJldHVybiBpbW1lZGlhdGVseSBhZnRlciB0aGUgZGF0YSBoYXMgYmVlbiBwYXNz
ZWQgdG8gZGlzawotICAgIGVudW0gU3luY2hyb25vdXNQcmFnbWEgewotICAgICAgICBTeW5jT2Zm
ID0gMCwgU3luY05vcm1hbCA9IDEsIFN5bmNGdWxsID0gMgotICAgIH07CisgICAgZW51bSBTeW5j
aHJvbm91c1ByYWdtYSB7IFN5bmNPZmYgPSAwLCBTeW5jTm9ybWFsID0gMSwgU3luY0Z1bGwgPSAy
IH07CiAgICAgdm9pZCBzZXRTeW5jaHJvbm91cyhTeW5jaHJvbm91c1ByYWdtYSk7CiAgICAgCiAg
ICAgaW50IGxhc3RFcnJvcigpOwpAQCAtMTA4LDkgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgdm9pZCBzZXRBdXRob3JpemVyKFBhc3NSZWZQdHI8U1FMaXRlQXV0aG9yaXplcj4pOwogCi0g
ICAgLy8gKHVuKWxvY2sncyB0aGUgZGF0YWJhc2UgbGlrZSBhIG11dGV4CisgICAgLy8gKHVuKWxv
Y2tzIHRoZSBkYXRhYmFzZSBsaWtlIGEgbXV0ZXgKICAgICB2b2lkIGxvY2soKTsKICAgICB2b2lk
IHVubG9jaygpOworCiBwcml2YXRlOgogICAgIHN0YXRpYyBpbnQgYXV0aG9yaXplckZ1bmN0aW9u
KHZvaWQqLCBpbnQsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0
IGNoYXIqKTsKIApAQCAtMTE4LDcgKzExMyw2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgaW50IHBh
Z2VTaXplKCk7CiAgICAgCi0gICAgU3RyaW5nICAgbV9wYXRoOwogICAgIHNxbGl0ZTMqIG1fZGI7
CiAgICAgaW50IG1fbGFzdEVycm9yOwogICAgIGludCBtX3BhZ2VTaXplOwpAQCAtMTMzLDE1ICsx
MjcsNiBAQCBwcml2YXRlOgogICAgIAogfTsgLy8gY2xhc3MgU1FMaXRlRGF0YWJhc2UKIAotaW5s
aW5lIFN0cmluZyBlc2NhcGVTUUxTdHJpbmcoY29uc3QgU3RyaW5nJiBzKQotewotICAgIFN0cmlu
ZyBlcyA9IHM7Ci0gICAgZXMucmVwbGFjZSgnXCcnLCAiJyciKTsKLSAgICByZXR1cm4gZXM7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotCi0KICNlbmRpZgpJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1N0cmluZy5jcHAJKHJldmlzaW9uIDI5NDQ5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiwxMCArMTEyLDEwIEBAIHZvaWQgU3Ry
aW5nOjphcHBlbmQoVUNoYXIgYykKIFN0cmluZyBvcGVyYXRvcisoY29uc3QgU3RyaW5nJiBhLCBj
b25zdCBTdHJpbmcmIGIpCiB7CiAgICAgaWYgKGEuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
Yi5jb3B5KCk7CisgICAgICAgIHJldHVybiBiOwogICAgIGlmIChiLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIGEuY29weSgpOwotICAgIFN0cmluZyBjID0gYS5jb3B5KCk7CisgICAgICAgIHJl
dHVybiBhOworICAgIFN0cmluZyBjID0gYTsKICAgICBjICs9IGI7CiAgICAgcmV0dXJuIGM7CiB9
Cg==
</data>
<flag name="review"
          id="8052"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>