<?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>25039</bug_id>
          
          <creation_ts>2009-04-03 14:58:39 -0700</creation_ts>
          <short_desc>UString refactoring to support UChar* sharing.</short_desc>
          <delta_ts>2009-04-07 14:18:27 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>23175</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>116492</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-04-03 14:58:39 -0700</bug_when>
    <thetext>See summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116493</commentid>
    <comment_count>1</comment_count>
      <attachid>29245</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-04-03 15:05:51 -0700</bug_when>
    <thetext>Created attachment 29245
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116645</commentid>
    <comment_count>2</comment_count>
      <attachid>29245</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-04-06 11:23:21 -0700</bug_when>
    <thetext>Comment on attachment 29245
Proposed fix.

r=me and Geoffrey Garen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116793</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-04-07 14:18:27 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/42282

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29245</attachid>
            <date>2009-04-03 15:05:51 -0700</date>
            <delta_ts>2009-04-06 11:23:21 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>bug25039.txt</filename>
            <type>text/plain</type>
            <size>12872</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkYjVhYzA1Li42NzkzYjU1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMDktMDQtMDMgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTAzOQorICAgICAgICBVU3RyaW5nIHJlZmFjdG9y
aW5nIHRvIHN1cHBvcnQgVUNoYXIqIHNoYXJpbmcuCisKKyAgICAgICAgTm8gY2hhbmdlIGluIHN1
bnNwaWRlciBwZXJmLgorCisgICAgICAgICogcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwOgorICAg
ICAgICAoSlNDOjpTbWFsbFN0cmluZ3NTdG9yYWdlOjpTbWFsbFN0cmluZ3NTdG9yYWdlKToKKyAg
ICAgICAgKiBydW50aW1lL1VTdHJpbmcuY3BwOgorICAgICAgICAoSlNDOjppbml0aWFsaXplU3Rh
dGljQmFzZVN0cmluZyk6CisgICAgICAgIChKU0M6OmluaXRpYWxpemVVU3RyaW5nKToKKyAgICAg
ICAgKEpTQzo6VVN0cmluZzo6QmFzZVN0cmluZzo6aXNTaGFyZWQpOgorICAgICAgICBFbmNhcHN1
bGF0ZSB0aGUgbWVhbmluZyBiZWhpbmQgdGhlIHJlZmNvdW50ID09IDEgY2hlY2tzIGJlY2F1c2UK
KyAgICAgICAgdGhpcyBuZWVkcyB0byBkbyBzbGlnaHRseSBtb3JlIHdoZW4gc2hhcmluZyBpcyBh
ZGRlZC4KKyAgICAgICAgKEpTQzo6Y29uY2F0ZW5hdGUpOgorICAgICAgICAoSlNDOjpVU3RyaW5n
OjphcHBlbmQpOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpvcGVyYXRvcj0pOgorICAgICAgICAq
IHJ1bnRpbWUvVVN0cmluZy5oOgorICAgICAgICBNYWtlIG1fYmFzZVN0cmluZyBwYXJ0IG9mIGEg
dW5pb24gdG8gZ2V0IHJpZCBvZiBjYXN0cywgYnV0IG1ha2UgaXQgcHJvdGVjdGVkIGJlY2F1c2UK
KyAgICAgICAgaXQgaXMgdHJpY2t5IHRvIHVzZSBpdCBjb3JyZWN0bHkgc2luY2UgaXQgaXMgb25s
eSB2YWxpZCB3aGVuIHRoZSBSZXAgaXMgbm90IGEgQmFzZVN0cmluZy4KKyAgICAgICAgVGhlIHZv
aWQqIHdpbGwgYmUgZmlsbGVkIGluIHdoZW4gc2hhcmluZyBpcyBhZGRlZC4KKworICAgICAgICBB
ZGQgY29uc3RydWN0b3JzIGR1ZSB0byB0aGUgbWFraW5nIG1lbWJlcnMgcHJvdGVjdGVkIGFuZCBp
dCBtYWtlIGVuc3VyaW5nIHByb3BlcgorICAgICAgICBpbnRpYWxpemF0aW9uIHdvcmsgYmV0dGVy
IChsaWtlIGluIFNtYWxsU3RyaW5nc1N0b3JhZ2UpLgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpS
ZXA6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlVTdHJpbmc6OlJlcDo6UmVwKToKKyAgICAgICAg
KEpTQzo6VVN0cmluZzo6UmVwOjopOgorICAgICAgICAoSlNDOjpVU3RyaW5nOjpCYXNlU3RyaW5n
OjpCYXNlU3RyaW5nKToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6UmVwOjpzZXRCYXNlU3RyaW5n
KToKKyAgICAgICAgKEpTQzo6VVN0cmluZzo6UmVwOjpiYXNlU3RyaW5nKToKKwogMjAwOS0wMy0y
NyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoQnVpbGQgZml4KS4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U21hbGxTdHJpbmdzLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNw
cAppbmRleCA2YzczZGYyLi44N2I0OWYwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1NtYWxsU3RyaW5ncy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0
cmluZ3MuY3BwCkBAIC00NywyNSArNDcsMTcgQEAgcHJpdmF0ZToKIH07CiAKIFNtYWxsU3RyaW5n
c1N0b3JhZ2U6OlNtYWxsU3RyaW5nc1N0b3JhZ2UoKQorICAgIDogbV9iYXNlKG1fY2hhcmFjdGVy
cywgbnVtQ2hhcmFjdGVyc1RvU3RvcmUpCiB7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG51bUNoYXJhY3RlcnNUb1N0b3JlOyArK2kpCi0gICAgICAgIG1fY2hhcmFjdGVyc1tpXSA9IGk7
Ci0KICAgICBtX2Jhc2UucmMgPSBudW1DaGFyYWN0ZXJzVG9TdG9yZSArIDE7Ci0gICAgbV9iYXNl
LmJ1ZiA9IG1fY2hhcmFjdGVyczsKLSAgICBtX2Jhc2UubGVuID0gbnVtQ2hhcmFjdGVyc1RvU3Rv
cmU7Ci0gICAgbV9iYXNlLm9mZnNldCA9IDA7Ci0gICAgbV9iYXNlLl9oYXNoID0gMDsKLSAgICBt
X2Jhc2UubV9iYXNlU3RyaW5nID0gMDsKLSAgICBtX2Jhc2UucHJlQ2FwYWNpdHkgPSAwOwotICAg
IG1fYmFzZS51c2VkUHJlQ2FwYWNpdHkgPSAwOwotICAgIG1fYmFzZS5yZXBvcnRlZENvc3QgPSAw
OwotCiAgICAgLy8gbWFrZSBzdXJlIFVTdHJpbmcgZG9lc24ndCB0cnkgdG8gcmV1c2UgdGhlIGJ1
ZmZlciBieSBwcmV0ZW5kaW5nIHdlIGhhdmUgb25lIG1vcmUgY2hhcmFjdGVyIGluIGl0CiAgICAg
bV9iYXNlLnVzZWRDYXBhY2l0eSA9IG51bUNoYXJhY3RlcnNUb1N0b3JlICsgMTsKICAgICBtX2Jh
c2UuY2FwYWNpdHkgPSBudW1DaGFyYWN0ZXJzVG9TdG9yZSArIDE7CiAgICAgbV9iYXNlLmNoZWNr
Q29uc2lzdGVuY3koKTsKIAorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBudW1DaGFyYWN0
ZXJzVG9TdG9yZTsgKytpKQorICAgICAgICBtX2NoYXJhY3RlcnNbaV0gPSBpOworCiAgICAgbWVt
c2V0KCZtX3JlcHMsIDAsIHNpemVvZihtX3JlcHMpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbnVtQ2hhcmFjdGVyc1RvU3RvcmU7ICsraSkgewogICAgICAgICBtX3JlcHNbaV0ub2Zm
c2V0ID0gaTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1VTdHJpbmcuY3BwCmluZGV4IDAyNGQ2YTEuLmIzYWFi
M2UgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmNwcApAQCAtMTkxLDMwICsxOTEsMjAgQEAg
VVN0cmluZzo6QmFzZVN0cmluZyogVVN0cmluZzo6UmVwOjpudWxsQmFzZVN0cmluZzsKIFVTdHJp
bmc6OkJhc2VTdHJpbmcqIFVTdHJpbmc6OlJlcDo6ZW1wdHlCYXNlU3RyaW5nOwogVVN0cmluZyog
VVN0cmluZzo6bnVsbFVTdHJpbmc7CiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVTdGF0aWNCYXNl
U3RyaW5nKGludCBsZW4sIFVDaGFyKiBidWYsIFVTdHJpbmc6OkJhc2VTdHJpbmcmIGJhc2UpCitz
dGF0aWMgdm9pZCBpbml0aWFsaXplU3RhdGljQmFzZVN0cmluZyhVU3RyaW5nOjpCYXNlU3RyaW5n
JiBiYXNlKQogewotICAgIGJhc2Uub2Zmc2V0ID0gMDsKLSAgICBiYXNlLmxlbiA9IGxlbjsKICAg
ICBiYXNlLnJjID0gSU5UX01BWCAvIDI7Ci0gICAgYmFzZS5faGFzaCA9IDA7CiAgICAgYmFzZS5t
X2lkZW50aWZpZXJUYWJsZUFuZEZsYWdzLnNldEZsYWcoVVN0cmluZzo6UmVwOjpTdGF0aWNGbGFn
KTsKLSAgICBiYXNlLm1fYmFzZVN0cmluZyA9IDA7Ci0gICAgYmFzZS5idWYgPSBidWY7Ci0gICAg
YmFzZS5wcmVDYXBhY2l0eSA9IDA7Ci0gICAgYmFzZS51c2VkUHJlQ2FwYWNpdHkgPSAwOwotICAg
IGJhc2UuY2FwYWNpdHkgPSAwOwotICAgIGJhc2UudXNlZENhcGFjaXR5ID0gMDsKLSAgICBiYXNl
LnJlcG9ydGVkQ29zdCA9IDA7CiAgICAgYmFzZS5jaGVja0NvbnNpc3RlbmN5KCk7CiB9CiAKIHZv
aWQgaW5pdGlhbGl6ZVVTdHJpbmcoKQogewotICAgIFVTdHJpbmc6OlJlcDo6bnVsbEJhc2VTdHJp
bmcgPSBuZXcgVVN0cmluZzo6QmFzZVN0cmluZzsKLSAgICBpbml0aWFsaXplU3RhdGljQmFzZVN0
cmluZygwLCAwLCAqVVN0cmluZzo6UmVwOjpudWxsQmFzZVN0cmluZyk7CisgICAgVVN0cmluZzo6
UmVwOjpudWxsQmFzZVN0cmluZyA9IG5ldyBVU3RyaW5nOjpCYXNlU3RyaW5nKDAsIDApOworICAg
IGluaXRpYWxpemVTdGF0aWNCYXNlU3RyaW5nKCpVU3RyaW5nOjpSZXA6Om51bGxCYXNlU3RyaW5n
KTsKIAotICAgIFVTdHJpbmc6OlJlcDo6ZW1wdHlCYXNlU3RyaW5nID0gbmV3IFVTdHJpbmc6OkJh
c2VTdHJpbmc7Ci0gICAgaW5pdGlhbGl6ZVN0YXRpY0Jhc2VTdHJpbmcoMCwgJnNoYXJlZEVtcHR5
Q2hhciwgKlVTdHJpbmc6OlJlcDo6ZW1wdHlCYXNlU3RyaW5nKTsKKyAgICBVU3RyaW5nOjpSZXA6
OmVtcHR5QmFzZVN0cmluZyA9IG5ldyBVU3RyaW5nOjpCYXNlU3RyaW5nKCZzaGFyZWRFbXB0eUNo
YXIsIDApOworICAgIGluaXRpYWxpemVTdGF0aWNCYXNlU3RyaW5nKCpVU3RyaW5nOjpSZXA6OmVt
cHR5QmFzZVN0cmluZyk7CiAKICAgICBVU3RyaW5nOjpudWxsVVN0cmluZyA9IG5ldyBVU3RyaW5n
OwogfQpAQCAtMjI4LDUyICsyMTgsNiBAQCBQYXNzUmVmUHRyPFVTdHJpbmc6OlJlcD4gVVN0cmlu
Zzo6UmVwOjpjcmVhdGVDb3B5aW5nKGNvbnN0IFVDaGFyKiBkLCBpbnQgbCkKICAgICByZXR1cm4g
Y3JlYXRlKGNvcHlELCBsKTsKIH0KIAotUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IFVTdHJpbmc6
OlJlcDo6Y3JlYXRlKFVDaGFyKiBkLCBpbnQgbCkKLXsKLSAgICBCYXNlU3RyaW5nKiByID0gbmV3
IEJhc2VTdHJpbmc7Ci0gICAgci0+b2Zmc2V0ID0gMDsKLSAgICByLT5sZW4gPSBsOwotICAgIHIt
PnJjID0gMTsKLSAgICByLT5faGFzaCA9IDA7Ci0gICAgci0+bV9iYXNlU3RyaW5nID0gMDsKLSAg
ICByLT5yZXBvcnRlZENvc3QgPSAwOwotICAgIHItPmJ1ZiA9IGQ7Ci0gICAgci0+dXNlZENhcGFj
aXR5ID0gbDsKLSAgICByLT5jYXBhY2l0eSA9IGw7Ci0gICAgci0+dXNlZFByZUNhcGFjaXR5ID0g
MDsKLSAgICByLT5wcmVDYXBhY2l0eSA9IDA7Ci0KLSAgICByLT5jaGVja0NvbnNpc3RlbmN5KCk7
Ci0KLSAgICAvLyBzdGVhbCB0aGUgc2luZ2xlIHJlZmVyZW5jZSB0aGlzIFJlcCB3YXMgY3JlYXRl
ZCB3aXRoCi0gICAgcmV0dXJuIGFkb3B0UmVmKHIpOwotfQotCi1QYXNzUmVmUHRyPFVTdHJpbmc6
OlJlcD4gVVN0cmluZzo6UmVwOjpjcmVhdGUoUGFzc1JlZlB0cjxSZXA+IHJlcCwgaW50IG9mZnNl
dCwgaW50IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQocmVwKTsKLSAgICByZXAtPmNoZWNrQ29uc2lz
dGVuY3koKTsKLQotICAgIGludCByZXBPZmZzZXQgPSByZXAtPm9mZnNldDsKLQotICAgIFBhc3NS
ZWZQdHI8QmFzZVN0cmluZz4gYmFzZSA9IHJlcC0+YmFzZVN0cmluZygpOwotCi0gICAgQVNTRVJU
KC0ob2Zmc2V0ICsgcmVwT2Zmc2V0KSA8PSBiYXNlLT51c2VkUHJlQ2FwYWNpdHkpOwotICAgIEFT
U0VSVChvZmZzZXQgKyByZXBPZmZzZXQgKyBsZW5ndGggPD0gYmFzZS0+dXNlZENhcGFjaXR5KTsK
LQotICAgIFJlcCogciA9IG5ldyBSZXA7Ci0gICAgci0+b2Zmc2V0ID0gcmVwT2Zmc2V0ICsgb2Zm
c2V0OwotICAgIHItPmxlbiA9IGxlbmd0aDsKLSAgICByLT5yYyA9IDE7Ci0gICAgci0+X2hhc2gg
PSAwOwotICAgIHItPnNldEJhc2VTdHJpbmcoYmFzZSk7Ci0KLSAgICByLT5jaGVja0NvbnNpc3Rl
bmN5KCk7Ci0KLSAgICAvLyBzdGVhbCB0aGUgc2luZ2xlIHJlZmVyZW5jZSB0aGlzIFJlcCB3YXMg
Y3JlYXRlZCB3aXRoCi0gICAgcmV0dXJuIGFkb3B0UmVmKHIpOwotfQotCiBQYXNzUmVmUHRyPFVT
dHJpbmc6OlJlcD4gVVN0cmluZzo6UmVwOjpjcmVhdGVGcm9tVVRGOChjb25zdCBjaGFyKiBzdHJp
bmcpCiB7CiAgICAgaWYgKCFzdHJpbmcpCkBAIC01NjQsNyArNTA4LDcgQEAgc3RhdGljIEFMV0FZ
U19JTkxJTkUgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IGNvbmNhdGVuYXRlKFBhc3NSZWZQdHI8
VVN0cmluZzo6UmUKICAgICB9IGVsc2UgaWYgKHRoaXNTaXplID09IDApIHsKICAgICAgICAgLy8g
dGhpcyBpcyBlbXB0eQogICAgICAgICByZXAgPSBVU3RyaW5nOjpSZXA6OmNyZWF0ZUNvcHlpbmco
dERhdGEsIHRTaXplKTsKLSAgICB9IGVsc2UgaWYgKHJlcCA9PSBiYXNlICYmIHJlcC0+cmMgPT0g
MSkgeworICAgIH0gZWxzZSBpZiAocmVwID09IGJhc2UgJiYgIWJhc2UtPmlzU2hhcmVkKCkpIHsK
ICAgICAgICAgLy8gdGhpcyBpcyBkaXJlY3QgYW5kIGhhcyByZWZjb3VudCBvZiAxIChzbyB3ZSBj
YW4ganVzdCBhbHRlciBpdCBkaXJlY3RseSkKICAgICAgICAgaWYgKCFleHBhbmRDYXBhY2l0eShy
ZXAuZ2V0KCksIHRoaXNPZmZzZXQgKyBsZW5ndGgpKQogICAgICAgICAgICAgcmVwID0gJlVTdHJp
bmc6OlJlcDo6bnVsbCgpOwpAQCAtNjE4LDcgKzU2Miw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5F
IFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBjb25jYXRlbmF0ZShQYXNzUmVmUHRyPFVTdHJpbmc6
OlJlCiAgICAgICAgIHJlcCA9IGNyZWF0ZVJlcCh0KTsKICAgICB9IGVsc2UgaWYgKHRTaXplID09
IDApIHsKICAgICAgICAgLy8gdCBpcyBlbXB0eSwgd2UnbGwganVzdCByZXR1cm4gKnRoaXMgYmVs
b3cuCi0gICAgfSBlbHNlIGlmIChyZXAgPT0gYmFzZSAmJiByZXAtPnJjID09IDEpIHsKKyAgICB9
IGVsc2UgaWYgKHJlcCA9PSBiYXNlICYmICFiYXNlLT5pc1NoYXJlZCgpKSB7CiAgICAgICAgIC8v
IHRoaXMgaXMgZGlyZWN0IGFuZCBoYXMgcmVmY291bnQgb2YgMSAoc28gd2UgY2FuIGp1c3QgYWx0
ZXIgaXQgZGlyZWN0bHkpCiAgICAgICAgIGV4cGFuZENhcGFjaXR5KHJlcC5nZXQoKSwgdGhpc09m
ZnNldCArIGxlbmd0aCk7CiAgICAgICAgIFVDaGFyKiBkID0gcmVwLT5kYXRhKCk7CkBAIC0xMDQx
LDcgKzk4NSw3IEBAIFVTdHJpbmcmIFVTdHJpbmc6OmFwcGVuZChjb25zdCBVU3RyaW5nICZ0KQog
ICAgICAgICAqdGhpcyA9IHQ7CiAgICAgfSBlbHNlIGlmICh0U2l6ZSA9PSAwKSB7CiAgICAgICAg
IC8vIHQgaXMgZW1wdHkKLSAgICB9IGVsc2UgaWYgKG1fcmVwID09IGJhc2UgJiYgbV9yZXAtPnJj
ID09IDEpIHsKKyAgICB9IGVsc2UgaWYgKG1fcmVwID09IGJhc2UgJiYgIWJhc2UtPmlzU2hhcmVk
KCkpIHsKICAgICAgICAgLy8gdGhpcyBpcyBkaXJlY3QgYW5kIGhhcyByZWZjb3VudCBvZiAxIChz
byB3ZSBjYW4ganVzdCBhbHRlciBpdCBkaXJlY3RseSkKICAgICAgICAgZXhwYW5kQ2FwYWNpdHko
dGhpc09mZnNldCArIGxlbmd0aCk7CiAgICAgICAgIGlmIChkYXRhKCkpIHsKQEAgLTExMDgsNyAr
MTA1Miw3IEBAIFVTdHJpbmcmIFVTdHJpbmc6OmFwcGVuZChVQ2hhciBjKQogICAgICAgICAgICAg
bV9yZXAgPSBSZXA6OmNyZWF0ZShkLCAxKTsKICAgICAgICAgICAgIG1fcmVwLT5iYXNlU3RyaW5n
KCktPmNhcGFjaXR5ID0gbmV3Q2FwYWNpdHk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYgKG1f
cmVwID09IGJhc2UgJiYgbV9yZXAtPnJjID09IDEpIHsKKyAgICB9IGVsc2UgaWYgKG1fcmVwID09
IGJhc2UgJiYgIWJhc2UtPmlzU2hhcmVkKCkpIHsKICAgICAgICAgLy8gdGhpcyBpcyBkaXJlY3Qg
YW5kIGhhcyByZWZjb3VudCBvZiAxIChzbyB3ZSBjYW4ganVzdCBhbHRlciBpdCBkaXJlY3RseSkK
ICAgICAgICAgZXhwYW5kQ2FwYWNpdHkodGhpc09mZnNldCArIGxlbmd0aCArIDEpOwogICAgICAg
ICBVQ2hhciogZCA9IG1fcmVwLT5kYXRhKCk7CkBAIC0xMjAyLDcgKzExNDYsNyBAQCBVU3RyaW5n
JiBVU3RyaW5nOjpvcGVyYXRvcj0oY29uc3QgY2hhciogYykKICAgICBpbnQgbCA9IHN0YXRpY19j
YXN0PGludD4oc3RybGVuKGMpKTsKICAgICBVQ2hhciogZDsKICAgICBCYXNlU3RyaW5nKiBiYXNl
ID0gbV9yZXAtPmJhc2VTdHJpbmcoKTsKLSAgICBpZiAobV9yZXAtPnJjID09IDEgJiYgbCA8PSBi
YXNlLT5jYXBhY2l0eSAmJiBtX3JlcCA9PSBiYXNlICYmIG1fcmVwLT5vZmZzZXQgPT0gMCAmJiBi
YXNlLT5wcmVDYXBhY2l0eSA9PSAwKSB7CisgICAgaWYgKCFiYXNlLT5pc1NoYXJlZCgpICYmIGwg
PD0gYmFzZS0+Y2FwYWNpdHkgJiYgbV9yZXAgPT0gYmFzZSAmJiBtX3JlcC0+b2Zmc2V0ID09IDAg
JiYgYmFzZS0+cHJlQ2FwYWNpdHkgPT0gMCkgewogICAgICAgICBkID0gYmFzZS0+YnVmOwogICAg
ICAgICBtX3JlcC0+X2hhc2ggPSAwOwogICAgICAgICBtX3JlcC0+bGVuID0gbDsKZGlmZiAtLWdp
dCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVVN0cmluZy5oIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9VU3RyaW5nLmgKaW5kZXggNTlhNzY2NS4uNjE0NGExNCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9VU3RyaW5nLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9V
U3RyaW5nLmgKQEAgLTc5LDcgKzc5LDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdHJ1
Y3QgUmVwIDogTm9uY29weWFibGUgewogICAgICAgICAgICAgZnJpZW5kIGNsYXNzIEpJVDsKIAot
ICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVwPiBjcmVhdGUoVUNoYXIqLCBpbnQpOwor
ICAgICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVwPiBjcmVhdGUoVUNoYXIqIGJ1ZmZlciwg
aW50IGxlbmd0aCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEJhc2VTdHJpbmcoYnVmZmVyLCBsZW5ndGgpKTsKKyAgICAgICAgICAgIH0KKwogICAg
ICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVwPiBjcmVhdGVDb3B5aW5nKGNvbnN0IFVDaGFy
KiwgaW50KTsKICAgICAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlcD4gY3JlYXRlKFBhc3NS
ZWZQdHI8UmVwPiBiYXNlLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKTsKIApAQCAtMTI0LDIyICsx
MjgsNTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBpbnQgcmM7IC8vIEZvciBudWxs
IGFuZCBlbXB0eSBzdGF0aWMgc3RyaW5ncywgdGhpcyBmaWVsZCBkb2VzIG5vdCByZWZsZWN0IGEg
Y29ycmVjdCBjb3VudCwgYmVjYXVzZSByZWYvZGVyZWYgYXJlIG5vdCB0aHJlYWQtc2FmZS4gQSBz
cGVjaWFsIGNhc2UgaW4gZGVzdHJveSgpIGd1YXJhbnRlZXMgdGhhdCB0aGVzZSBkbyBub3QgZ2V0
IGRlbGV0ZWQuCiAgICAgICAgICAgICBtdXRhYmxlIHVuc2lnbmVkIF9oYXNoOwogICAgICAgICAg
ICAgUHRyQW5kRmxhZ3M8SWRlbnRpZmllclRhYmxlLCBVU3RyaW5nRmxhZ3M+IG1faWRlbnRpZmll
clRhYmxlQW5kRmxhZ3M7Ci0gICAgICAgICAgICB2b2lkKiBtX2Jhc2VTdHJpbmc7IC8vIElmICJ0
aGlzIiBpcyBhIEJhc2VTdHJpbmcgaW5zdGFuY2UsIGl0IGlzIDAuIEJhc2VTdHJpbmcqIG90aGVy
d2lzZS4KIAogICAgICAgICAgICAgc3RhdGljIEJhc2VTdHJpbmcmIG51bGwoKSB7IHJldHVybiAq
bnVsbEJhc2VTdHJpbmc7IH0KICAgICAgICAgICAgIHN0YXRpYyBCYXNlU3RyaW5nJiBlbXB0eSgp
IHsgcmV0dXJuICplbXB0eUJhc2VTdHJpbmc7IH0KIAorICAgICAgICBwcm90ZWN0ZWQ6CisgICAg
ICAgICAgICBSZXAoaW50IGxlbmd0aCkKKyAgICAgICAgICAgICAgICA6IG9mZnNldCgwKQorICAg
ICAgICAgICAgICAgICwgbGVuKGxlbmd0aCkKKyAgICAgICAgICAgICAgICAsIHJjKDEpCisgICAg
ICAgICAgICAgICAgLCBfaGFzaCgwKQorICAgICAgICAgICAgICAgICwgbV9ub3RoaW5nKDApCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIFJlcChQYXNzUmVmUHRy
PEJhc2VTdHJpbmc+IGJhc2UsIGludCBvZmZzZXRJbkJhc2UsIGludCBsZW5ndGgpCisgICAgICAg
ICAgICAgICAgOiBvZmZzZXQob2Zmc2V0SW5CYXNlKQorICAgICAgICAgICAgICAgICwgbGVuKGxl
bmd0aCkKKyAgICAgICAgICAgICAgICAsIHJjKDEpCisgICAgICAgICAgICAgICAgLCBfaGFzaCgw
KQorICAgICAgICAgICAgICAgICwgbV9iYXNlU3RyaW5nKGJhc2UucmVsZWFzZVJlZigpKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGNoZWNrQ29uc2lzdGVuY3koKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgdW5pb24geworICAgICAgICAgICAgICAgIC8vIElmICFiYXNl
SXNTZWxmKCkKKyAgICAgICAgICAgICAgICBCYXNlU3RyaW5nKiBtX2Jhc2VTdHJpbmc7CisgICAg
ICAgICAgICAgICAgLy8gSWYgYmFzZUlzU2VsZigpCisgICAgICAgICAgICAgICAgdm9pZCogbV9u
b3RoaW5nOworICAgICAgICAgICAgfTsKKwogICAgICAgICBwcml2YXRlOgorICAgICAgICAgICAg
Ly8gRm9yIFNtYWxsU3RyaW5nU3RvcmFnZSB3aGljaCBhbGxvY2F0ZXMgYW4gYXJyYXkgYW5kIGRv
ZXMgaW5pdGlhbGl6YXRpb24gbWFudWFsbHkuCisgICAgICAgICAgICBSZXAoKSB7IH0KKworICAg
ICAgICAgICAgZnJpZW5kIGNsYXNzIFNtYWxsU3RyaW5nc1N0b3JhZ2U7CiAgICAgICAgICAgICBm
cmllbmQgdm9pZCBpbml0aWFsaXplVVN0cmluZygpOwogICAgICAgICAgICAgc3RhdGljIEJhc2VT
dHJpbmcqIG51bGxCYXNlU3RyaW5nOwogICAgICAgICAgICAgc3RhdGljIEJhc2VTdHJpbmcqIGVt
cHR5QmFzZVN0cmluZzsKICAgICAgICAgfTsKIAorCiAgICAgICAgIHN0cnVjdCBCYXNlU3RyaW5n
IDogcHVibGljIFJlcCB7Ci0gICAgICAgICAgICBCYXNlU3RyaW5nKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBtX2lkZW50aWZpZXJUYWJsZUFuZEZsYWdzLnNldEZsYWcoQmFzZVN0
cmluZ0ZsYWcpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYm9vbCBpc1NoYXJlZCgpIHsg
cmV0dXJuIHJjICE9IDE7IH0KIAogICAgICAgICAgICAgLy8gcG90ZW50aWFsbHkgc2hhcmVkIGRh
dGEuCiAgICAgICAgICAgICBVQ2hhciogYnVmOwpAQCAtMTQ5LDYgKzE4MSwyNCBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgICAgIGludCB1c2VkQ2FwYWNpdHk7CiAKICAgICAgICAgICAgIHNp
emVfdCByZXBvcnRlZENvc3Q7CisKKyAgICAgICAgcHJpdmF0ZToKKyAgICAgICAgICAgIEJhc2VT
dHJpbmcoVUNoYXIqIGJ1ZmZlciwgaW50IGxlbmd0aCkKKyAgICAgICAgICAgICAgICA6IFJlcChs
ZW5ndGgpCisgICAgICAgICAgICAgICAgLCBidWYoYnVmZmVyKQorICAgICAgICAgICAgICAgICwg
cHJlQ2FwYWNpdHkoMCkKKyAgICAgICAgICAgICAgICAsIHVzZWRQcmVDYXBhY2l0eSgwKQorICAg
ICAgICAgICAgICAgICwgY2FwYWNpdHkobGVuZ3RoKQorICAgICAgICAgICAgICAgICwgdXNlZENh
cGFjaXR5KGxlbmd0aCkKKyAgICAgICAgICAgICAgICAsIHJlcG9ydGVkQ29zdCgwKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIG1faWRlbnRpZmllclRhYmxlQW5kRmxhZ3Muc2V0Rmxh
ZyhCYXNlU3RyaW5nRmxhZyk7CisgICAgICAgICAgICAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmcmllbmQgc3RydWN0IFJlcDsKKyAgICAgICAg
ICAgIGZyaWVuZCBjbGFzcyBTbWFsbFN0cmluZ3NTdG9yYWdlOworICAgICAgICAgICAgZnJpZW5k
IHZvaWQgaW5pdGlhbGl6ZVVTdHJpbmcoKTsKICAgICAgICAgfTsKIAogICAgIHB1YmxpYzoKQEAg
LTMyMCw2ICszNzAsMjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBib29sIGVxdWFsKGNvbnN0
IFVTdHJpbmc6OlJlcCosIGNvbnN0IFVTdHJpbmc6OlJlcCopOwogCisgICAgaW5saW5lIFBhc3NS
ZWZQdHI8VVN0cmluZzo6UmVwPiBVU3RyaW5nOjpSZXA6OmNyZWF0ZShQYXNzUmVmUHRyPFVTdHJp
bmc6OlJlcD4gcmVwLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKHJlcCk7CisgICAgICAgIHJlcC0+Y2hlY2tDb25zaXN0ZW5jeSgpOworCisgICAgICAgIGlu
dCByZXBPZmZzZXQgPSByZXAtPm9mZnNldDsKKworICAgICAgICBQYXNzUmVmUHRyPEJhc2VTdHJp
bmc+IGJhc2UgPSByZXAtPmJhc2VTdHJpbmcoKTsKKworICAgICAgICBBU1NFUlQoLShvZmZzZXQg
KyByZXBPZmZzZXQpIDw9IGJhc2UtPnVzZWRQcmVDYXBhY2l0eSk7CisgICAgICAgIEFTU0VSVChv
ZmZzZXQgKyByZXBPZmZzZXQgKyBsZW5ndGggPD0gYmFzZS0+dXNlZENhcGFjaXR5KTsKKworICAg
ICAgICAvLyBTdGVhbCB0aGUgc2luZ2xlIHJlZmVyZW5jZSB0aGlzIFJlcCB3YXMgY3JlYXRlZCB3
aXRoLgorICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlcChiYXNlLCByZXBPZmZzZXQgKyBv
ZmZzZXQsIGxlbmd0aCkpOworICAgIH0KKwogICAgIGlubGluZSBVQ2hhciogVVN0cmluZzo6UmVw
OjpkYXRhKCkgY29uc3QKICAgICB7CiAgICAgICAgIGNvbnN0IEJhc2VTdHJpbmcqIGJhc2UgPSBi
YXNlU3RyaW5nKCk7CkBAIC0zMzgsMTcgKzQwNCwxOCBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICBp
bmxpbmUgdm9pZCBVU3RyaW5nOjpSZXA6OnNldEJhc2VTdHJpbmcoUGFzc1JlZlB0cjxCYXNlU3Ry
aW5nPiBiYXNlKQogICAgIHsKICAgICAgICAgQVNTRVJUKGJhc2UgIT0gdGhpcyk7CisgICAgICAg
IEFTU0VSVCghYmFzZUlzU2VsZigpKTsKICAgICAgICAgbV9iYXNlU3RyaW5nID0gYmFzZS5yZWxl
YXNlUmVmKCk7CiAgICAgfQogCiAgICAgaW5saW5lIFVTdHJpbmc6OkJhc2VTdHJpbmcqIFVTdHJp
bmc6OlJlcDo6YmFzZVN0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxCYXNlU3RyaW5nKj4oYmFzZUlzU2VsZigpID8gdGhpcyA6IG1fYmFzZVN0cmluZyk7Cisg
ICAgICAgIHJldHVybiBiYXNlSXNTZWxmKCkgPyByZWludGVycHJldF9jYXN0PEJhc2VTdHJpbmcq
Pih0aGlzKSA6IG1fYmFzZVN0cmluZzsKICAgICB9CiAKICAgICBpbmxpbmUgY29uc3QgVVN0cmlu
Zzo6QmFzZVN0cmluZyogVVN0cmluZzo6UmVwOjpiYXNlU3RyaW5nKCkgY29uc3QKICAgICB7Ci0g
ICAgICAgIHJldHVybiBjb25zdF9jYXN0PGNvbnN0IEJhc2VTdHJpbmcqPihjb25zdF9jYXN0PFJl
cCo+KHRoaXMpLT5iYXNlU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxSZXAq
Pih0aGlzKS0+YmFzZVN0cmluZygpOwogICAgIH0KIAogI2lmZGVmIE5ERUJVRwo=
</data>
<flag name="review"
          id="14514"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>