<?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>54062</bug_id>
          
          <creation_ts>2011-02-08 21:49:05 -0800</creation_ts>
          <short_desc>Use a vector to track blocks in the Heap, instead of hand-rolled vector-like code</short_desc>
          <delta_ts>2011-02-08 21:59:10 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>347964</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-08 21:49:05 -0800</bug_when>
    <thetext>Use a vector to track blocks in the Heap, instead of hand-rolled vector-like code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347969</commentid>
    <comment_count>1</comment_count>
      <attachid>81748</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-08 21:53:18 -0800</bug_when>
    <thetext>Created attachment 81748
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347975</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-02-08 21:59:10 -0800</bug_when>
    <thetext>Committed r78017: &lt;http://trac.webkit.org/changeset/78017&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81748</attachid>
            <date>2011-02-08 21:53:18 -0800</date>
            <delta_ts>2011-02-08 21:57:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54062-20110208215316.patch</filename>
            <type>text/plain</type>
            <size>11852</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gNzgwMTYpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAK
KzIwMTEtMDItMDggIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgYSB2ZWN0b3IgdG8g
dHJhY2sgYmxvY2tzIGluIHRoZSBIZWFwLCBpbnN0ZWFkIG9mIGhhbmQtcm9sbGVkIHZlY3Rvci1s
aWtlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MDYyCisgICAgICAgIAorICAgICAgICBTdW5TcGlkZXIgcmVwb3J0cyBubyBjaGFuZ2UuCisK
KyAgICAgICAgKiBydW50aW1lL0NvbGxlY3RvckhlYXBJdGVyYXRvci5oOgorICAgICAgICAoSlND
OjpDb2xsZWN0b3JIZWFwSXRlcmF0b3I6OmlzVmFsaWQpOgorICAgICAgICAoSlNDOjpDb2xsZWN0
b3JIZWFwSXRlcmF0b3I6OmlzTGl2ZSk6IFVwZGF0ZWQgZm9yIG5ldyBtYXJrIGludmFyaWFudDog
VG8KKyAgICAgICAga25vdyBpZiBhbiBvYmplY3QgaXMgbGl2ZSwgeW91IGp1c3QgbmVlZCB0byB0
ZXN0IGl0cyBtYXJrIGJpdC4KKworICAgICAgICAqIHJ1bnRpbWUvTWFya2VkU3BhY2UuY3BwOgor
ICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6TWFya2VkU3BhY2UpOiBNb3ZlZCB3YXRlck1hcmsg
YW5kIGhpZ2hXYXRlck1hcmsgZnJvbQorICAgICAgICBDb2xsZWN0b3JIZWFwIGludG8gTWFya2Vk
U3BhY2UsIHNpbmNlIHRoZXkncmUgZ2xvYmFsIHN0YXRlLiBSZW1vdmVkIGNhbGwKKyAgICAgICAg
dG8gbWVtc2V0IHNpbmNlIENvbGxlY3RvckhlYXAgaXMgYSB0cnVlIGNsYXNzIHdpdGggaXRzIG93
biBjb25zdHJ1Y3RvciBub3cuCisKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmRlc3Ryb3kp
OiBDaGFuZ2UgdXNlcyBvZiBtX2hlYXAudXNlZEJsb2NrcyB0bworICAgICAgICBtX2hlYXAuYmxv
Y2tzLnNpemUoKSwgYW5kIG1faGVhcC5udW1CbG9ja3MgdG8gbV9oZWFwLmJsb2Nrcy5jYXBhY2l0
eSgpLgorCisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjphbGxvY2F0ZUJsb2NrKToKKyAgICAg
ICAgKEpTQzo6TWFya2VkU3BhY2U6OmZyZWVCbG9jayk6IE5vIG5lZWQgdG8gbWFuYWdlIG91ciB2
ZWN0b3IgbWFudWFsbHkgYW55bW9yZS4KKworICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6YWxs
b2NhdGUpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6c2hyaW5rKToKKyAgICAgICAgKEpT
Qzo6TWFya2VkU3BhY2U6OmNsZWFyTWFya0JpdHMpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFj
ZTo6bWFya2VkQ2VsbHMpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6c3dlZXApOgorICAg
ICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6b2JqZWN0Q291bnQpOgorICAgICAgICAoSlNDOjpNYXJr
ZWRTcGFjZTo6Y2FwYWNpdHkpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6cmVzZXQpOgor
ICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6cHJpbWFyeUhlYXBFbmQpOgorICAgICAgICAqIHJ1
bnRpbWUvTWFya2VkU3BhY2UuaDoKKyAgICAgICAgKEpTQzo6Q29sbGVjdG9ySGVhcDo6Q29sbGVj
dG9ySGVhcCk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpoaWdoV2F0ZXJNYXJrKToKKyAg
ICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OnNldEhpZ2hXYXRlck1hcmspOgorICAgICAgICAoSlND
OjpNYXJrZWRTcGFjZTo6Y29udGFpbnMpOiBTYW1lIGFzIGFib3ZlLgorCiAyMDExLTAyLTA4ICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0
b3JIZWFwSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Db2xsZWN0b3JIZWFwSXRlcmF0b3IuaAkocmV2aXNpb24gNzc5NzUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2xsZWN0b3JIZWFwSXRlcmF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtNzksMTQgKzc5LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIGJv
b2wgQ29sbGVjdG9ySGVhcEl0ZXJhdG9yOjppc1ZhbGlkKCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBtX2Jsb2NrIDwgbV9oZWFwLnVzZWRCbG9ja3M7CisgICAgICAgIHJldHVybiBtX2Jsb2NrIDwg
bV9oZWFwLmJsb2Nrcy5zaXplKCk7CiAgICAgfQogCiAgICAgaW5saW5lIGJvb2wgQ29sbGVjdG9y
SGVhcEl0ZXJhdG9yOjppc0xpdmUoKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYmxvY2sgPCBt
X2hlYXAubmV4dEJsb2NrCi0gICAgICAgICAgICB8fCAobV9ibG9jayA9PSBtX2hlYXAubmV4dEJs
b2NrICYmIG1fY2VsbCA8IG1faGVhcC5uZXh0Q2VsbCkKLSAgICAgICAgICAgIHx8IChtX2Jsb2Nr
IDwgbV9oZWFwLnVzZWRCbG9ja3MgJiYgbV9oZWFwLmNvbGxlY3RvckJsb2NrKG1fYmxvY2spLT5t
YXJrZWQuZ2V0KG1fY2VsbCkpOworICAgICAgICByZXR1cm4gbV9oZWFwLmNvbGxlY3RvckJsb2Nr
KG1fYmxvY2spLT5tYXJrZWQuZ2V0KG1fY2VsbCk7CiAgICAgfQogCiAgICAgaW5saW5lIEpTQ2Vs
bCogQ29sbGVjdG9ySGVhcEl0ZXJhdG9yOjpvcGVyYXRvciooKSBjb25zdApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFya2VkU3BhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL01hcmtlZFNwYWNlLmNwcAkocmV2aXNpb24gNzc5
NzcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9NYXJrZWRTcGFjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDEwIEBAIGNvbnN0IHNpemVfdCBBTExPQ0FUSU9OU19Q
RVJfQ09MTEVDVElPTiAKICNkZWZpbmUgTUlOX0FSUkFZX1NJWkUgKHN0YXRpY19jYXN0PHNpemVf
dD4oMTQpKQogCiBNYXJrZWRTcGFjZTo6TWFya2VkU3BhY2UoSlNHbG9iYWxEYXRhKiBnbG9iYWxE
YXRhKQotICAgIDogbV9nbG9iYWxEYXRhKGdsb2JhbERhdGEpCisgICAgOiBtX3dhdGVyTWFyaygw
KQorICAgICwgbV9oaWdoV2F0ZXJNYXJrKDApCisgICAgLCBtX2dsb2JhbERhdGEoZ2xvYmFsRGF0
YSkKIHsKLSAgICBtZW1zZXQoJm1faGVhcCwgMCwgc2l6ZW9mKENvbGxlY3RvckhlYXApKTsKICAg
ICBhbGxvY2F0ZUJsb2NrKCk7CiB9CiAKQEAgLTUyLDExICs1Myw5IEBAIHZvaWQgTWFya2VkU3Bh
Y2U6OmRlc3Ryb3koKQogewogICAgIGNsZWFyTWFya0JpdHMoKTsgLy8gTWFrZSBzdXJlIHdlYWsg
cG9pbnRlcnMgYXBwZWFyIGRlYWQgZHVyaW5nIGRlc3RydWN0aW9uLgogCi0gICAgd2hpbGUgKG1f
aGVhcC51c2VkQmxvY2tzKQorICAgIHdoaWxlIChtX2hlYXAuYmxvY2tzLnNpemUoKSkKICAgICAg
ICAgZnJlZUJsb2NrKDApOwotICAgIGZhc3RGcmVlKG1faGVhcC5ibG9ja3MpOwotCi0gICAgbWVt
c2V0KCZtX2hlYXAsIDAsIHNpemVvZihDb2xsZWN0b3JIZWFwKSk7CisgICAgbV9oZWFwLmJsb2Nr
cy5jbGVhcigpOwogfQogCiBORVZFUl9JTkxJTkUgTWFya2VkQmxvY2sqIE1hcmtlZFNwYWNlOjph
bGxvY2F0ZUJsb2NrKCkKQEAgLTc1LDE5ICs3NCw3IEBAIE5FVkVSX0lOTElORSBNYXJrZWRCbG9j
ayogTWFya2VkU3BhY2U6OmEKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IEhlYXBDb25zdGFu
dHM6OmNlbGxzUGVyQmxvY2s7ICsraSkKICAgICAgICAgbmV3ICgmYmxvY2stPmNlbGxzW2ldKSBK
U0NlbGwoZHVtbXlNYXJrYWJsZUNlbGxTdHJ1Y3R1cmUpOwogICAgIAotICAgIC8vIEFkZCBibG9j
ayB0byBibG9ja3MgdmVjdG9yLgotCi0gICAgc2l6ZV90IG51bUJsb2NrcyA9IG1faGVhcC5udW1C
bG9ja3M7Ci0gICAgaWYgKG1faGVhcC51c2VkQmxvY2tzID09IG51bUJsb2NrcykgewotICAgICAg
ICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heE51bUJsb2NrcyA9IFVMT05HX01BWCAvIHNpemVvZihQ
YWdlQWxsb2NhdGlvbkFsaWduZWQpIC8gR1JPV1RIX0ZBQ1RPUjsKLSAgICAgICAgaWYgKG51bUJs
b2NrcyA+IG1heE51bUJsb2NrcykKLSAgICAgICAgICAgIENSQVNIKCk7Ci0gICAgICAgIG51bUJs
b2NrcyA9IG1heChNSU5fQVJSQVlfU0laRSwgbnVtQmxvY2tzICogR1JPV1RIX0ZBQ1RPUik7Ci0g
ICAgICAgIG1faGVhcC5udW1CbG9ja3MgPSBudW1CbG9ja3M7Ci0gICAgICAgIG1faGVhcC5ibG9j
a3MgPSBzdGF0aWNfY2FzdDxQYWdlQWxsb2NhdGlvbkFsaWduZWQqPihmYXN0UmVhbGxvYyhtX2hl
YXAuYmxvY2tzLCBudW1CbG9ja3MgKiBzaXplb2YoUGFnZUFsbG9jYXRpb25BbGlnbmVkKSkpOwot
ICAgIH0KLSAgICBtX2hlYXAuYmxvY2tzW21faGVhcC51c2VkQmxvY2tzKytdID0gYWxsb2NhdGlv
bjsKLQorICAgIG1faGVhcC5ibG9ja3MuYXBwZW5kKGFsbG9jYXRpb24pOwogICAgIHJldHVybiBi
bG9jazsKIH0KIApAQCAtMTAwLDEzICs4Nyw4IEBAIE5FVkVSX0lOTElORSB2b2lkIE1hcmtlZFNw
YWNlOjpmcmVlQmxvY2sKICAgICBtX2hlYXAuYmxvY2tzW2Jsb2NrXS5kZWFsbG9jYXRlKCk7CiAK
ICAgICAvLyBzd2FwIHdpdGggdGhlIGxhc3QgYmxvY2sgc28gd2UgY29tcGFjdCBhcyB3ZSBnbwot
ICAgIG1faGVhcC5ibG9ja3NbYmxvY2tdID0gbV9oZWFwLmJsb2Nrc1ttX2hlYXAudXNlZEJsb2Nr
cyAtIDFdOwotICAgIG1faGVhcC51c2VkQmxvY2tzLS07Ci0KLSAgICBpZiAobV9oZWFwLm51bUJs
b2NrcyA+IE1JTl9BUlJBWV9TSVpFICYmIG1faGVhcC51c2VkQmxvY2tzIDwgbV9oZWFwLm51bUJs
b2NrcyAvIExPV19XQVRFUl9GQUNUT1IpIHsKLSAgICAgICAgbV9oZWFwLm51bUJsb2NrcyA9IG1f
aGVhcC5udW1CbG9ja3MgLyBHUk9XVEhfRkFDVE9SOyAKLSAgICAgICAgbV9oZWFwLmJsb2NrcyA9
IHN0YXRpY19jYXN0PFBhZ2VBbGxvY2F0aW9uQWxpZ25lZCo+KGZhc3RSZWFsbG9jKG1faGVhcC5i
bG9ja3MsIG1faGVhcC5udW1CbG9ja3MgKiBzaXplb2YoUGFnZUFsbG9jYXRpb25BbGlnbmVkKSkp
OwotICAgIH0KKyAgICBtX2hlYXAuYmxvY2tzW2Jsb2NrXSA9IG1faGVhcC5ibG9ja3MubGFzdCgp
OworICAgIG1faGVhcC5ibG9ja3MucmVtb3ZlTGFzdCgpOwogfQogCiB2b2lkKiBNYXJrZWRTcGFj
ZTo6YWxsb2NhdGUoc2l6ZV90IHMpCkBAIC0xMjIsNyArMTA0LDcgQEAgdm9pZCogTWFya2VkU3Bh
Y2U6OmFsbG9jYXRlKHNpemVfdCBzKQogICAgIC8vIEZhc3QgY2FzZTogZmluZCB0aGUgbmV4dCBn
YXJiYWdlIGNlbGwgYW5kIHJlY3ljbGUgaXQuCiAKICAgICBkbyB7Ci0gICAgICAgIEFTU0VSVCht
X2hlYXAubmV4dEJsb2NrIDwgbV9oZWFwLnVzZWRCbG9ja3MpOworICAgICAgICBBU1NFUlQobV9o
ZWFwLm5leHRCbG9jayA8IG1faGVhcC5ibG9ja3Muc2l6ZSgpKTsKICAgICAgICAgQmxvY2sqIGJs
b2NrID0gbV9oZWFwLmNvbGxlY3RvckJsb2NrKG1faGVhcC5uZXh0QmxvY2spOwogICAgICAgICBk
byB7CiAgICAgICAgICAgICBBU1NFUlQobV9oZWFwLm5leHRDZWxsIDwgSGVhcENvbnN0YW50czo6
Y2VsbHNQZXJCbG9jayk7CkBAIC0xMzgsMTAgKzEyMCwxMCBAQCB2b2lkKiBNYXJrZWRTcGFjZTo6
YWxsb2NhdGUoc2l6ZV90IHMpCiAgICAgICAgICAgICBtX2hlYXAubmV4dENlbGwgPSBibG9jay0+
bWFya2VkLm5leHRQb3NzaWJseVVuc2V0KG1faGVhcC5uZXh0Q2VsbCk7CiAgICAgICAgIH0gd2hp
bGUgKG1faGVhcC5uZXh0Q2VsbCAhPSBIZWFwQ29uc3RhbnRzOjpjZWxsc1BlckJsb2NrKTsKICAg
ICAgICAgbV9oZWFwLm5leHRDZWxsID0gMDsKLSAgICAgICAgbV9oZWFwLndhdGVyTWFyayArPSBC
TE9DS19TSVpFOwotICAgIH0gd2hpbGUgKCsrbV9oZWFwLm5leHRCbG9jayAhPSBtX2hlYXAudXNl
ZEJsb2Nrcyk7CisgICAgICAgIG1fd2F0ZXJNYXJrICs9IEJMT0NLX1NJWkU7CisgICAgfSB3aGls
ZSAoKyttX2hlYXAubmV4dEJsb2NrICE9IG1faGVhcC5ibG9ja3Muc2l6ZSgpKTsKIAotICAgIGlm
IChtX2hlYXAud2F0ZXJNYXJrIDwgbV9oZWFwLmhpZ2hXYXRlck1hcmspIHsKKyAgICBpZiAobV93
YXRlck1hcmsgPCBtX2hpZ2hXYXRlck1hcmspIHsKICAgICAgICAgTWFya2VkQmxvY2sqIGJsb2Nr
ID0gYWxsb2NhdGVCbG9jaygpOwogICAgICAgICBBU1NFUlQoIWJsb2NrLT5tYXJrZWQuZ2V0KG1f
aGVhcC5uZXh0Q2VsbCkpOwogICAgICAgICBibG9jay0+bWFya2VkLnNldChtX2hlYXAubmV4dENl
bGwpOwpAQCAtMTU0LDEwICsxMzYsMTAgQEAgdm9pZCogTWFya2VkU3BhY2U6OmFsbG9jYXRlKHNp
emVfdCBzKQogdm9pZCBNYXJrZWRTcGFjZTo6c2hyaW5rKCkKIHsKICAgICAvLyBDbGVhciB0aGUg
YWx3YXlzLW9uIGxhc3QgYml0LCBzbyBpc0VtcHR5KCkgaXNuJ3QgZm9vbGVkIGJ5IGl0LgotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFwLnVzZWRCbG9ja3M7ICsraSkKKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1faGVhcC5ibG9ja3Muc2l6ZSgpOyArK2kpCiAgICAgICAgIG1f
aGVhcC5jb2xsZWN0b3JCbG9jayhpKS0+bWFya2VkLmNsZWFyKEhlYXBDb25zdGFudHM6OmNlbGxz
UGVyQmxvY2sgLSAxKTsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICE9IG1faGVhcC51c2Vk
QmxvY2tzICYmIG1faGVhcC51c2VkQmxvY2tzID4gMTsgKSB7IC8vIFdlIGFzc3VtZSBhdCBsZWFz
dCBvbmUgYmxvY2sgZXhpc3RzIGF0IGFsbCB0aW1lcy4KKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSAhPSBtX2hlYXAuYmxvY2tzLnNpemUoKSAmJiBtX2hlYXAuYmxvY2tzLnNpemUoKSA+IDE7ICkg
eyAvLyBXZSBhc3N1bWUgYXQgbGVhc3Qgb25lIGJsb2NrIGV4aXN0cyBhdCBhbGwgdGltZXMuCiAg
ICAgICAgIGlmIChtX2hlYXAuY29sbGVjdG9yQmxvY2soaSktPm1hcmtlZC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIGZyZWVCbG9jayhpKTsKICAgICAgICAgfSBlbHNlCkBAIC0xNjUsMTMgKzE0
NywxMyBAQCB2b2lkIE1hcmtlZFNwYWNlOjpzaHJpbmsoKQogICAgIH0KIAogICAgIC8vIFJlc2V0
IHRoZSBhbHdheXMtb24gbGFzdCBiaXQuCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2hl
YXAudXNlZEJsb2NrczsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFwLmJs
b2Nrcy5zaXplKCk7ICsraSkKICAgICAgICAgbV9oZWFwLmNvbGxlY3RvckJsb2NrKGkpLT5tYXJr
ZWQuc2V0KEhlYXBDb25zdGFudHM6OmNlbGxzUGVyQmxvY2sgLSAxKTsKIH0KIAogdm9pZCBNYXJr
ZWRTcGFjZTo6Y2xlYXJNYXJrQml0cygpCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X2hlYXAudXNlZEJsb2NrczsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9oZWFw
LmJsb2Nrcy5zaXplKCk7ICsraSkKICAgICAgICAgY2xlYXJNYXJrQml0cyhtX2hlYXAuY29sbGVj
dG9yQmxvY2soaSkpOwogfQogCkBAIC0xODQsMTUgKzE2NiwxNSBAQCB2b2lkIE1hcmtlZFNwYWNl
OjpjbGVhck1hcmtCaXRzKE1hcmtlZEJsCiAKIHNpemVfdCBNYXJrZWRTcGFjZTo6bWFya2VkQ2Vs
bHMoc2l6ZV90IHN0YXJ0QmxvY2ssIHNpemVfdCBzdGFydENlbGwpIGNvbnN0CiB7Ci0gICAgQVNT
RVJUKHN0YXJ0QmxvY2sgPD0gbV9oZWFwLnVzZWRCbG9ja3MpOworICAgIEFTU0VSVChzdGFydEJs
b2NrIDw9IG1faGVhcC5ibG9ja3Muc2l6ZSgpKTsKICAgICBBU1NFUlQoc3RhcnRDZWxsIDwgSGVh
cENvbnN0YW50czo6Y2VsbHNQZXJCbG9jayk7CiAKLSAgICBpZiAoc3RhcnRCbG9jayA+PSBtX2hl
YXAudXNlZEJsb2NrcykKKyAgICBpZiAoc3RhcnRCbG9jayA+PSBtX2hlYXAuYmxvY2tzLnNpemUo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBzaXplX3QgcmVzdWx0ID0gMDsKICAgICByZXN1
bHQgKz0gbV9oZWFwLmNvbGxlY3RvckJsb2NrKHN0YXJ0QmxvY2spLT5tYXJrZWQuY291bnQoc3Rh
cnRDZWxsKTsKLSAgICBmb3IgKHNpemVfdCBpID0gc3RhcnRCbG9jayArIDE7IGkgPCBtX2hlYXAu
dXNlZEJsb2NrczsgKytpKQorICAgIGZvciAoc2l6ZV90IGkgPSBzdGFydEJsb2NrICsgMTsgaSA8
IG1faGVhcC5ibG9ja3Muc2l6ZSgpOyArK2kpCiAgICAgICAgIHJlc3VsdCArPSBtX2hlYXAuY29s
bGVjdG9yQmxvY2soaSktPm1hcmtlZC5jb3VudCgpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAg
LTIwNSw3ICsxODcsNyBAQCB2b2lkIE1hcmtlZFNwYWNlOjpzd2VlcCgpCiAjZW5kaWYKIAogICAg
IERlYWRPYmplY3RJdGVyYXRvciBpdChtX2hlYXAsIDAsIDApOwotICAgIERlYWRPYmplY3RJdGVy
YXRvciBlbmQobV9oZWFwLCBtX2hlYXAudXNlZEJsb2NrcywgMCk7CisgICAgRGVhZE9iamVjdEl0
ZXJhdG9yIGVuZChtX2hlYXAsIG1faGVhcC5ibG9ja3Muc2l6ZSgpLCAwKTsKICAgICBmb3IgKCA7
IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBKU0NlbGwqIGNlbGwgPSAqaXQ7CiAjaWYgRU5B
QkxFKEpTQ19aT01CSUVTKQpAQCAtMjMwLDcgKzIxMiw3IEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6
b2JqZWN0Q291bnQoKSBjb25zdAogICAgIHJldHVybiBtX2hlYXAubmV4dEJsb2NrICogSGVhcENv
bnN0YW50czo6Y2VsbHNQZXJCbG9jayAvLyBhbGxvY2F0ZWQgZnVsbCBibG9ja3MKICAgICAgICAg
ICAgKyBtX2hlYXAubmV4dENlbGwgLy8gYWxsb2NhdGVkIGNlbGxzIGluIGN1cnJlbnQgYmxvY2sK
ICAgICAgICAgICAgKyBtYXJrZWRDZWxscyhtX2hlYXAubmV4dEJsb2NrLCBtX2hlYXAubmV4dENl
bGwpIC8vIG1hcmtlZCBjZWxscyBpbiByZW1haW5kZXIgb2YgbV9oZWFwCi0gICAgICAgICAgIC0g
bV9oZWFwLnVzZWRCbG9ja3M7IC8vIDEgY2VsbCBwZXIgYmxvY2sgaXMgYSBkdW1teSBzZW50aW5l
bAorICAgICAgICAgICAtIG1faGVhcC5ibG9ja3Muc2l6ZSgpOyAvLyAxIGNlbGwgcGVyIGJsb2Nr
IGlzIGEgZHVtbXkgc2VudGluZWwKIH0KIAogc2l6ZV90IE1hcmtlZFNwYWNlOjpzaXplKCkgY29u
c3QKQEAgLTI0MCwxNCArMjIyLDE0IEBAIHNpemVfdCBNYXJrZWRTcGFjZTo6c2l6ZSgpIGNvbnN0
CiAKIHNpemVfdCBNYXJrZWRTcGFjZTo6Y2FwYWNpdHkoKSBjb25zdAogewotICAgIHJldHVybiBt
X2hlYXAudXNlZEJsb2NrcyAqIEJMT0NLX1NJWkU7CisgICAgcmV0dXJuIG1faGVhcC5ibG9ja3Mu
c2l6ZSgpICogQkxPQ0tfU0laRTsKIH0KIAogdm9pZCBNYXJrZWRTcGFjZTo6cmVzZXQoKQogewog
ICAgIG1faGVhcC5uZXh0Q2VsbCA9IDA7CiAgICAgbV9oZWFwLm5leHRCbG9jayA9IDA7Ci0gICAg
bV9oZWFwLndhdGVyTWFyayA9IDA7CisgICAgbV93YXRlck1hcmsgPSAwOwogI2lmIEVOQUJMRShK
U0NfWk9NQklFUykKICAgICBzd2VlcCgpOwogI2VuZGlmCkBAIC0yNjAsNyArMjQyLDcgQEAgTGl2
ZU9iamVjdEl0ZXJhdG9yIE1hcmtlZFNwYWNlOjpwcmltYXJ5SAogCiBMaXZlT2JqZWN0SXRlcmF0
b3IgTWFya2VkU3BhY2U6OnByaW1hcnlIZWFwRW5kKCkKIHsKLSAgICByZXR1cm4gTGl2ZU9iamVj
dEl0ZXJhdG9yKG1faGVhcCwgbV9oZWFwLnVzZWRCbG9ja3MsIDApOworICAgIHJldHVybiBMaXZl
T2JqZWN0SXRlcmF0b3IobV9oZWFwLCBtX2hlYXAuYmxvY2tzLnNpemUoKSwgMCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvTWFy
a2VkU3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9N
YXJrZWRTcGFjZS5oCShyZXZpc2lvbiA3Nzk3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL01hcmtlZFNwYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDIwICs0MSwyMCBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICBjbGFzcyBXZWFrR0NIYW5kbGU7CiAKICAgICBzdHJ1Y3QgQ29s
bGVjdG9ySGVhcCB7Ci0gICAgICAgIHNpemVfdCBuZXh0QmxvY2s7Ci0gICAgICAgIHNpemVfdCBu
ZXh0Q2VsbDsKLSAgICAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkKiBibG9ja3M7Ci0gICAgICAg
IAotICAgICAgICBzaXplX3QgbnVtQmxvY2tzOwotICAgICAgICBzaXplX3QgdXNlZEJsb2NrczsK
KyAgICAgICAgQ29sbGVjdG9ySGVhcCgpCisgICAgICAgICAgICA6IG5leHRCbG9jaygwKQorICAg
ICAgICAgICAgLCBuZXh0Q2VsbCgwKQorICAgICAgICB7CisgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIHNpemVfdCB3YXRlck1hcms7Ci0gICAgICAgIHNpemVfdCBoaWdoV2F0ZXJNYXJrOwot
CiAgICAgICAgIE1hcmtlZEJsb2NrKiBjb2xsZWN0b3JCbG9jayhzaXplX3QgaW5kZXgpIGNvbnN0
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxNYXJrZWRCbG9jayo+
KGJsb2Nrc1tpbmRleF0uYmFzZSgpKTsKICAgICAgICAgfQorCisgICAgICAgIHNpemVfdCBuZXh0
QmxvY2s7CisgICAgICAgIHNpemVfdCBuZXh0Q2VsbDsKKyAgICAgICAgVmVjdG9yPFBhZ2VBbGxv
Y2F0aW9uQWxpZ25lZD4gYmxvY2tzOwogICAgIH07CiAKICAgICBjbGFzcyBNYXJrZWRTcGFjZSB7
CkBAIC03MSw4ICs3MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YTsgfQogCi0gICAgICAgIHNpemVf
dCBoaWdoV2F0ZXJNYXJrKCkgeyByZXR1cm4gbV9oZWFwLmhpZ2hXYXRlck1hcms7IH0KLSAgICAg
ICAgdm9pZCBzZXRIaWdoV2F0ZXJNYXJrKHNpemVfdCBoaWdoV2F0ZXJNYXJrKSB7IG1faGVhcC5o
aWdoV2F0ZXJNYXJrID0gaGlnaFdhdGVyTWFyazsgfQorICAgICAgICBzaXplX3QgaGlnaFdhdGVy
TWFyaygpIHsgcmV0dXJuIG1faGlnaFdhdGVyTWFyazsgfQorICAgICAgICB2b2lkIHNldEhpZ2hX
YXRlck1hcmsoc2l6ZV90IGhpZ2hXYXRlck1hcmspIHsgbV9oaWdoV2F0ZXJNYXJrID0gaGlnaFdh
dGVyTWFyazsgfQogCiAgICAgICAgIHZvaWQqIGFsbG9jYXRlKHNpemVfdCk7CiAKQEAgLTk5LDYg
Kzk5LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgY2xlYXJNYXJrQml0cyhNYXJr
ZWRCbG9jayopOwogCiAgICAgICAgIENvbGxlY3RvckhlYXAgbV9oZWFwOworICAgICAgICBzaXpl
X3QgbV93YXRlck1hcms7CisgICAgICAgIHNpemVfdCBtX2hpZ2hXYXRlck1hcms7CiAgICAgICAg
IEpTR2xvYmFsRGF0YSogbV9nbG9iYWxEYXRhOwogICAgIH07CiAKQEAgLTEzMSw4ICsxMzMsOCBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaWYgKCFibG9jaykKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgICAgICBzaXplX3QgdXNlZEJsb2NrcyA9IG1faGVhcC51c2VkQmxvY2tz
OwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHVzZWRCbG9ja3M7IGkrKykgeworICAg
ICAgICBzaXplX3Qgc2l6ZSA9IG1faGVhcC5ibG9ja3Muc2l6ZSgpOworICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7IGkrKykgewogICAgICAgICAgICAgaWYgKGJsb2NrICE9IG1f
aGVhcC5jb2xsZWN0b3JCbG9jayhpKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAo=
</data>
<flag name="review"
          id="73360"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>