<?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>56285</bug_id>
          
          <creation_ts>2011-03-13 20:39:53 -0700</creation_ts>
          <short_desc>StorageTracker - lock fixes - followup for feedback on https://bugs.webkit.org/show_bug.cgi?id=51878</short_desc>
          <delta_ts>2011-03-14 11:03:06 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Anton D&apos;Auria">adauria</reporter>
          <assigned_to name="Anton D&apos;Auria">adauria</assigned_to>
          <cc>beidson</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jorlow</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366811</commentid>
    <comment_count>0</comment_count>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-13 20:39:53 -0700</bug_when>
    <thetext>The primary patch for https://bugs.webkit.org/show_bug.cgi?id=51878 has already been checked in. To simplify discussion of lock-related fixes in StorageTracker, I am opening this bug. A patch for this bug should address all issues brought up by David Levin here: https://bugs.webkit.org/show_bug.cgi?id=51878#c93</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366815</commentid>
    <comment_count>1</comment_count>
      <attachid>85640</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-13 21:04:08 -0700</bug_when>
    <thetext>Created attachment 85640
Patch

StorageTracker::scheduleTask() was correct but not very readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366847</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-13 22:58:46 -0700</bug_when>
    <thetext>I would have liked to have had a chance to review this since it is addressing my comments :( 

There were already several mistakes in previous iterations which I caught.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366849</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-13 23:02:56 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I would have liked to have had a chance to review this since it is addressing my comments :( 
&gt; 
&gt; There were already several mistakes in previous iterations which I caught.

Sorry about that, such a desire wasn&apos;t present in this bug.  You&apos;re still allowed to review - bonus points if it&apos;s tonight...  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366852</commentid>
    <comment_count>4</comment_count>
      <attachid>85640</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-03-13 23:14:47 -0700</bug_when>
    <thetext>Comment on attachment 85640
Patch

Looks fine to me too. Thanks for waiting. I just wanted to see this through and do my best to verify correctness.

Hopefully this will help you in the end. (I caught several issues which could have led to instability here.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366857</commentid>
    <comment_count>5</comment_count>
      <attachid>85640</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-13 23:24:26 -0700</bug_when>
    <thetext>Comment on attachment 85640
Patch

Landing manually to help some colleagues get at it before the commit queue wakes up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366858</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2011-03-13 23:25:08 -0700</bug_when>
    <thetext>landed in r81003</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85640</attachid>
            <date>2011-03-13 21:04:08 -0700</date>
            <delta_ts>2011-03-13 23:24:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56285-20110313210407.patch</filename>
            <type>text/plain</type>
            <size>11900</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwOTkwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDMtMTMgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBGaXhlZCBsb2NrLXRha2luZyBvcmRlciB0byBwcmV2ZW50IGRl
YWRsb2NrLCBhZGRlZCBsb2NrIGZvciBtX2NsaWVudCwKKyAgICAgICAgcmVtb3ZlZCBwcmVtYXR1
cmUgcmV0dXJuIGluIHN5bmNJbXBvcnRPcmlnaW5JZGVudGlmaWVycyB3aGVuIHRyYWNrZXIKKyAg
ICAgICAgZGIgZG9lcyBub3QgZXhpc3QgYmVjYXVzZSB0aGF0IHByZXZlbnRlZCBzeW5jRmlsZVN5
c3RlbUFuZFRyYWNrZXJEYXRhYmFzZSgpCisgICAgICAgIGZyb20gcnVubmluZyB1bnRpbCBuZXh0
IExvY2FsU3RvcmFnZSBkYiBjcmVhdGlvbiwgY2xlYW5lZCB1cAorICAgICAgICBTdG9yYWdlVHJh
Y2tlcjo6c2NoZWR1bGVUYXNrKCkgY29kZSBmb3IgcmVhZGFiaWxpdHkuCisgICAgICAgIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYyODUKKyAgICAg
ICAgCisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCk6CisgICAgICAgIChXZWJD
b3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0ltcG9ydE9yaWdpbklkZW50aWZpZXJzKTogSWYgdHJh
Y2tlciBkYiBpc24ndAorICAgICAgICBvcHRpb25hbGx5IG9wZW5lZCAoYXMgaW4gdGhlIGNhc2Ug
d2hlbiBpdCBkb2Vzbid0IGV4aXN0IG9uIGRpc2spLCBkb24ndAorICAgICAgICBleGl0IGVhcmx5
IGFuZCBjYWxsIHN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKCksIHdoaWNoIHdpbGwg
Y3JlYXRlCisgICAgICAgIGEgdHJhY2tlciBkYiBpZiBsb2NhbHN0b3JhZ2UgZGIgZmlsZXMgYXJl
IGZvdW5kIG9uIGRpc2sgYnkgY2FsbGluZyBzZXRPcmlnaW5EZXRhaWxzLgorICAgICAgICAoV2Vi
Q29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVtQW5kVHJhY2tlckRhdGFiYXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5EZXRhaWxzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzY2hlZHVsZVRhc2spOiByZWFkYWJpbGl0
eSBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZVRyYWNrZXI6OnN5bmNTZXRPcmln
aW5EZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpzeW5jRGVsZXRl
QWxsT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0
ZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6Y2FuY2VsRGVsZXRp
bmdPcmlnaW4pOiBvcmRlciBsb2NrLXRha2luZyBjb25zaXN0ZW50bHkgdG8gYXZvaWQgZGVhZGxv
Y2suCisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6c2V0Q2xpZW50KToKKyAgICAg
ICAgKiBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmg6CisKIDIwMTEtMDMtMTMgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggd2luZG93cyBidWlsZC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCShyZXZpc2lvbiA4MDk5MCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw4ICs4Myw5IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldFN0b3JhZ2VEaXJl
Y3RvcnkKICAgICBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoID0gcGF0aC50aHJlYWRzYWZlQ29weSgp
OwogfQogCi1TdHJpbmcgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGgoKSBjb25z
dAorU3RyaW5nIFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyRGF0YWJhc2VQYXRoKCkKIHsKKyAgICBB
U1NFUlQoIW1fZGF0YWJhc2VHdWFyZC50cnlMb2NrKCkpOwogICAgIHJldHVybiBTUUxpdGVGaWxl
U3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fc3RvcmFnZURpcmVjdG9yeVBh
dGgsICJTdG9yYWdlVHJhY2tlci5kYiIpOwogfQogCkBAIC0xMzgsNDcgKzEzOSw3MyBAQCB2b2lk
IFN0b3JhZ2VUcmFja2VyOjpzeW5jSW1wb3J0T3JpZ2luSWRlCiAgICAgewogICAgICAgICBNdXRl
eExvY2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKIAorICAgICAgICAvLyBEb24n
dCBmb3JjZSBjcmVhdGlvbiBvZiBTdG9yYWdlVHJhY2tlcidzIGRiIGp1c3QgYmVjYXVzZSBhIHRy
YWNrZXIKKyAgICAgICAgLy8gd2FzIGluaXRpYWxpemVkLiBJdCB3aWxsIGJlIGNyZWF0ZWQgaWYg
bG9jYWwgc3RvcmFnZSBkYnMgYXJlIGZvdW5kCisgICAgICAgIC8vIGJ5IHN5bmNGaWxlU3lzdGVt
QW5kVHJhY2tlckRhdGFic2UoKSBvciB0aGUgbmV4dCB0aW1lIGEgbG9jYWwgc3RvcmFnZQorICAg
ICAgICAvLyBkYiBpcyBjcmVhdGVkIGJ5IFN0b3JhZ2VBcmVhU3luYy4KICAgICAgICAgb3BlblRy
YWNrZXJEYXRhYmFzZShmYWxzZSk7Ci0gICAgICAgIGlmICghbV9kYXRhYmFzZS5pc09wZW4oKSkK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIFNRTGl0ZVN0YXRlbWVudCBz
dGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBvcmlnaW4gRlJPTSBPcmlnaW5zIik7Ci0gICAg
ICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rKSB7Ci0gICAgICAgICAg
ICBMT0dfRVJST1IoIkZhaWxlZCB0byBwcmVwYXJlIHN0YXRlbWVudC4iKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaW50IHJlc3VsdDsKIAotICAg
ICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrT3JpZ2lucyhtX29yaWdpblNldEd1
YXJkKTsKLSAgICAgICAgICAgIHdoaWxlICgocmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKSkgPT0g
U1FMUmVzdWx0Um93KQotICAgICAgICAgICAgICAgIG1fb3JpZ2luU2V0LmFkZChzdGF0ZW1lbnQu
Z2V0Q29sdW1uVGV4dCgwKS50aHJlYWRzYWZlQ29weSgpKTsKKyAgICAgICAgaWYgKG1fZGF0YWJh
c2UuaXNPcGVuKCkpIHsKKyAgICAgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzdGF0ZW1lbnQobV9k
YXRhYmFzZSwgIlNFTEVDVCBvcmlnaW4gRlJPTSBPcmlnaW5zIik7CisgICAgICAgICAgICBpZiAo
c3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykgeworICAgICAgICAgICAgICAgIExP
R19FUlJPUigiRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50LiIpOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaW50IHJl
c3VsdDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIE11dGV4
TG9ja2VyIGxvY2tPcmlnaW5zKG1fb3JpZ2luU2V0R3VhcmQpOworICAgICAgICAgICAgICAgIHdo
aWxlICgocmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKSkgPT0gU1FMUmVzdWx0Um93KQorICAgICAg
ICAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQoc3RhdGVtZW50LmdldENvbHVtblRleHQoMCku
dGhyZWFkc2FmZUNvcHkoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0RG9uZSkgeworICAgICAgICAgICAgICAgIExPR19F
UlJPUigiRmFpbGVkIHRvIHJlYWQgaW4gYWxsIG9yaWdpbnMgZnJvbSB0aGUgZGF0YWJhc2UuIik7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBpZiAocmVzdWx0ICE9IFNRTFJlc3VsdERvbmUpCi0gICAgICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byByZWFkIGluIGFsbCBvcmlnaW5zIGZyb20gdGhlIGRhdGFiYXNl
LiIpOwogICAgIH0KICAgICAKICAgICBzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJEYXRhYmFzZSgp
OwogICAgIAotICAgIGlmIChtX2NsaWVudCkgewotICAgICAgICBNdXRleExvY2tlciBsb2NrT3Jp
Z2lucyhtX29yaWdpblNldEd1YXJkKTsKLSAgICAgICAgT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRv
ciBlbmQgPSBtX29yaWdpblNldC5lbmQoKTsKLSAgICAgICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gbV9vcmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAg
ICAgICAgICAgbV9jbGllbnQtPmRpc3BhdGNoRGlkTW9kaWZ5T3JpZ2luKCppdCk7CisgICAgewor
ICAgICAgICBNdXRleExvY2tlciBsb2NrQ2xpZW50KG1fY2xpZW50R3VhcmQpOworICAgICAgICBp
ZiAobV9jbGllbnQpIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tPcmlnaW5zKG1fb3Jp
Z2luU2V0R3VhcmQpOworICAgICAgICAgICAgT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSBtX29yaWdpblNldC5lbmQoKTsKKyAgICAgICAgICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9p
dGVyYXRvciBpdCA9IG1fb3JpZ2luU2V0LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oKml0KTsKKyAgICAg
ICAgfQogICAgIH0KIH0KICAgICAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNGaWxlU3lzdGVt
QW5kVHJhY2tlckRhdGFiYXNlKCkKIHsKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAg
ICBBU1NFUlQobV9pc0FjdGl2ZSk7CiAKKyAgICBtX2RhdGFiYXNlR3VhcmQubG9jaygpOwogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBmaWxlTWF0Y2hQYXR0ZXJuLCAoIiou
bG9jYWxzdG9yYWdlIikpOwogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBm
aWxlRXh0LCAoIi5sb2NhbHN0b3JhZ2UiKSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25z
dCB1bnNpZ25lZCwgZmlsZUV4dExlbmd0aCwgKGZpbGVFeHQubGVuZ3RoKCkpKTsKKyAgICBtX2Rh
dGFiYXNlR3VhcmQudW5sb2NrKCk7CiAKLSAgICBWZWN0b3I8U3RyaW5nPiBwYXRocyA9IGxpc3RE
aXJlY3RvcnkobV9zdG9yYWdlRGlyZWN0b3J5UGF0aCwgZmlsZU1hdGNoUGF0dGVybik7CisgICAg
VmVjdG9yPFN0cmluZz4gcGF0aHM7CisgICAgeworICAgICAgICBNdXRleExvY2tlciBsb2NrKG1f
ZGF0YWJhc2VHdWFyZCk7CisgICAgICAgIHBhdGhzID0gbGlzdERpcmVjdG9yeShtX3N0b3JhZ2VE
aXJlY3RvcnlQYXRoLCBmaWxlTWF0Y2hQYXR0ZXJuKTsKKyAgICB9CisKKyAgICAvLyBVc2UgYSBj
b3B5IG9mIG1fb3JpZ2luU2V0IHRvIGZpbmQgZXhwaXJlZCBlbnRyaWVzIGFuZCB0byBzY2hlZHVs
ZSB0aGVpcgorICAgIC8vIGRlbGV0aW9ucyBmcm9tIGRpc2sgYW5kIGZyb20gbV9vcmlnaW5TZXQu
CisgICAgT3JpZ2luU2V0IG9yaWdpblNldENvcHk7CisgICAgeworICAgICAgICBNdXRleExvY2tl
ciBsb2NrKG1fb3JpZ2luU2V0R3VhcmQpOworICAgICAgICBPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG1fb3JpZ2luU2V0LmVuZCgpOworICAgICAgICBmb3IgKE9yaWdpblNldDo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtX29yaWdpblNldC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisg
ICAgICAgICAgICBvcmlnaW5TZXRDb3B5LmFkZCgoKml0KS50aHJlYWRzYWZlQ29weSgpKTsKKyAg
ICB9CiAgICAgCiAgICAgLy8gQWRkIG1pc3NpbmcgU3RvcmFnZVRyYWNrZXIgcmVjb3Jkcy4KICAg
ICBPcmlnaW5TZXQgZm91bmRPcmlnaW5zOwpAQCAtMTg4LDI2ICsyMTUsMTggQEAgdm9pZCBTdG9y
YWdlVHJhY2tlcjo6c3luY0ZpbGVTeXN0ZW1BbmRUcgogICAgICAgICBpZiAocGF0aC5lbmRzV2l0
aChmaWxlRXh0LCB0cnVlKSAmJiBwYXRoLmxlbmd0aCgpID4gZmlsZUV4dExlbmd0aCkgewogICAg
ICAgICAgICAgU3RyaW5nIGZpbGUgPSBwYXRoR2V0RmlsZU5hbWUocGF0aCk7CiAgICAgICAgICAg
ICBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciA9IGZpbGUuc3Vic3RyaW5nKDAsIGZpbGUubGVuZ3Ro
KCkgLSBmaWxlRXh0TGVuZ3RoKTsKLSAgICAgICAgICAgIGlmICghbV9vcmlnaW5TZXQuY29udGFp
bnMob3JpZ2luSWRlbnRpZmllcikpIHsKLSAgICAgICAgICAgICAgICBpZiAoaXNNYWluVGhyZWFk
KCkpCi0gICAgICAgICAgICAgICAgICAgIHNldE9yaWdpbkRldGFpbHMob3JpZ2luSWRlbnRpZmll
ciwgcGF0aCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzeW5j
U2V0T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVyLCBwYXRoKTsKLSAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmICghb3JpZ2luU2V0Q29weS5jb250YWlucyhvcmlnaW5JZGVudGlmaWVy
KSkKKyAgICAgICAgICAgICAgICBzeW5jU2V0T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVy
LCBwYXRoKTsKIAogICAgICAgICAgICAgZm91bmRPcmlnaW5zLmFkZChvcmlnaW5JZGVudGlmaWVy
KTsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8vIERlbGV0ZSBzdGFsZSBTdG9yYWdlVHJhY2tl
ciByZWNvcmRzLgotICAgIE9yaWdpblNldDo6Y29uc3RfaXRlcmF0b3Igc2V0RW5kID0gbV9vcmln
aW5TZXQuZW5kKCk7Ci0gICAgZm9yIChPcmlnaW5TZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9v
cmlnaW5TZXQuYmVnaW4oKTsgaXQgIT0gc2V0RW5kOyArK2l0KSB7Ci0gICAgICAgIGlmICghZm91
bmRPcmlnaW5zLmNvbnRhaW5zKCppdCkpIHsKLSAgICAgICAgICAgIGlmIChpc01haW5UaHJlYWQo
KSkKLSAgICAgICAgICAgICAgICBkZWxldGVPcmlnaW4oKml0KTsKLSAgICAgICAgICAgIGVsc2Ug
Ci0gICAgICAgICAgICAgICAgc3luY0RlbGV0ZU9yaWdpbigqaXQpOwotICAgICAgICB9CisgICAg
T3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBzZXRFbmQgPSBvcmlnaW5TZXRDb3B5LmVuZCgpOwor
ICAgIGZvciAoT3JpZ2luU2V0Ojpjb25zdF9pdGVyYXRvciBpdCA9IG9yaWdpblNldENvcHkuYmVn
aW4oKTsgaXQgIT0gc2V0RW5kOyArK2l0KSB7CisgICAgICAgIGlmICghZm91bmRPcmlnaW5zLmNv
bnRhaW5zKCppdCkpCisgICAgICAgICAgICBzeW5jRGVsZXRlT3JpZ2luKCppdCk7CiAgICAgfQog
fQogCkBAIC0yMjUsMjIgKzI0NCwyMyBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzZXRPcmlnaW5E
ZXRhaWxzKGNvCiAgICAgICAgIG1fb3JpZ2luU2V0LmFkZChvcmlnaW5JZGVudGlmaWVyKTsKICAg
ICB9CiAKLSAgICBMb2NhbFN0b3JhZ2VUYXNrKiB0YXNrID0gTG9jYWxTdG9yYWdlVGFzazo6Y3Jl
YXRlU2V0T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlmaWVyLnRocmVhZHNhZmVDb3B5KCksIGRh
dGFiYXNlRmlsZSkubGVha1B0cigpOworICAgIE93blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiB0YXNr
ID0gTG9jYWxTdG9yYWdlVGFzazo6Y3JlYXRlU2V0T3JpZ2luRGV0YWlscyhvcmlnaW5JZGVudGlm
aWVyLnRocmVhZHNhZmVDb3B5KCksIGRhdGFiYXNlRmlsZSk7CiAKICAgICBpZiAoaXNNYWluVGhy
ZWFkKCkpIHsKICAgICAgICAgQVNTRVJUKG1fdGhyZWFkKTsKLSAgICAgICAgbV90aHJlYWQtPnNj
aGVkdWxlVGFzayh0YXNrKTsKKyAgICAgICAgbV90aHJlYWQtPnNjaGVkdWxlVGFzayh0YXNrLnJl
bGVhc2UoKSk7CiAgICAgfSBlbHNlIAotICAgICAgICBjYWxsT25NYWluVGhyZWFkKHNjaGVkdWxl
VGFzaywgKHZvaWQqKXRhc2spOworICAgICAgICBjYWxsT25NYWluVGhyZWFkKHNjaGVkdWxlVGFz
aywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4odGFzay5sZWFrUHRyKCkpKTsKIH0KIAotdm9pZCBT
dG9yYWdlVHJhY2tlcjo6c2NoZWR1bGVUYXNrKHZvaWQqIHRhc2spCit2b2lkIFN0b3JhZ2VUcmFj
a2VyOjpzY2hlZHVsZVRhc2sodm9pZCogdGFza0luKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAgICAgQVNTRVJUKFN0b3JhZ2VUcmFja2VyOjp0cmFja2VyKCkubV90aHJlYWQpOwog
ICAgIAotICAgIGlmIChTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLm1fdGhyZWFkKQotICAgICAg
ICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLm1fdGhyZWFkLT5zY2hlZHVsZVRhc2soKExvY2Fs
U3RvcmFnZVRhc2sqKXRhc2spOworICAgIE93blB0cjxMb2NhbFN0b3JhZ2VUYXNrPiB0YXNrID0g
YWRvcHRQdHIocmVpbnRlcnByZXRfY2FzdDxMb2NhbFN0b3JhZ2VUYXNrKj4odGFza0luKSk7CisK
KyAgICBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLm1fdGhyZWFkLT5zY2hlZHVsZVRhc2sodGFz
ay5yZWxlYXNlKCkpOwogfQogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0
YWlscyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VGaWxlKQpAQCAtMjcyLDggKzI5MiwxMSBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpzeW5jU2V0
T3JpZ2luRGV0YWlsCiAgICAgICAgICAgICBtX29yaWdpblNldC5hZGQob3JpZ2luSWRlbnRpZmll
cik7CiAgICAgfQogCi0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlzcGF0
Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CisgICAgeworICAgICAgICBNdXRl
eExvY2tlciBsb2NrQ2xpZW50KG1fY2xpZW50R3VhcmQpOworICAgICAgICBpZiAobV9jbGllbnQp
CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4ob3JpZ2luSWRl
bnRpZmllcik7CisgICAgfQogfQogCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjpvcmlnaW5zKFZlY3Rv
cjxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+ID4mIHJlc3VsdCkKQEAgLTMzNywxMSArMzYwLDE1IEBA
IHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxPcmlnaW4KICAgICBpbnQgcmVzdWx0
OwogICAgIHdoaWxlICgocmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKSkgPT0gU1FMUmVzdWx0Um93
KSB7CiAgICAgICAgIGlmICghY2FuRGVsZXRlT3JpZ2luKHN0YXRlbWVudC5nZXRDb2x1bW5UZXh0
KDApKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIFNRTGl0ZUZpbGVTeXN0ZW06OmRlbGV0ZURhdGFiYXNlRmlsZShzdGF0ZW1lbnQu
Z2V0Q29sdW1uVGV4dCgxKSk7Ci0gICAgICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgIG1f
Y2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihzdGF0ZW1lbnQuZ2V0Q29sdW1uVGV4dCgw
KSk7CisKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja0NsaWVudChtX2Ns
aWVudEd1YXJkKTsKKyAgICAgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgICAgICBt
X2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oc3RhdGVtZW50LmdldENvbHVtblRleHQo
MCkpOworICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0
RG9uZSkKQEAgLTQ0OCw5ICs0NzUsMTIgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6c3luY0RlbGV0
ZU9yaWdpbihjbwogICAgICAgICBTUUxpdGVGaWxlU3lzdGVtOjpkZWxldGVEYXRhYmFzZUZpbGUo
dHJhY2tlckRhdGFiYXNlUGF0aCgpKTsKICAgICAgICAgU1FMaXRlRmlsZVN5c3RlbTo6ZGVsZXRl
RW1wdHlEYXRhYmFzZURpcmVjdG9yeShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKTsKICAgICB9Ci0g
ICAgCi0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlzcGF0Y2hEaWRNb2Rp
ZnlPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CisKKyAgICB7CisgICAgICAgIE11dGV4TG9ja2Vy
IGxvY2tDbGllbnQobV9jbGllbnRHdWFyZCk7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaXNwYXRjaERpZE1vZGlmeU9yaWdpbihvcmlnaW5JZGVudGlmaWVy
KTsKKyAgICB9CiB9CiAgICAgCiB2b2lkIFN0b3JhZ2VUcmFja2VyOjp3aWxsRGVsZXRlQWxsT3Jp
Z2lucygpCkBAIC00ODIsMTQgKzUxMiwxNSBAQCB2b2lkIFN0b3JhZ2VUcmFja2VyOjpjYW5jZWxE
ZWxldGluZ09yaWdpCiAgICAgaWYgKCFtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNdXRleExvY2tlciBsb2NrT3JpZ2lucyhtX29yaWdpblNldEd1YXJkKTsKICAgICBNdXRleExv
Y2tlciBsb2NrRGF0YWJhc2UobV9kYXRhYmFzZUd1YXJkKTsKKyAgICBNdXRleExvY2tlciBsb2Nr
T3JpZ2lucyhtX29yaWdpblNldEd1YXJkKTsKICAgICBpZiAoIW1fb3JpZ2luc0JlaW5nRGVsZXRl
ZC5pc0VtcHR5KCkpCiAgICAgICAgIG1fb3JpZ2luc0JlaW5nRGVsZXRlZC5yZW1vdmUob3JpZ2lu
SWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldENsaWVudChTdG9yYWdl
VHJhY2tlckNsaWVudCogY2xpZW50KQogeworICAgIE11dGV4TG9ja2VyIGxvY2tDbGllbnQobV9j
bGllbnRHdWFyZCk7CiAgICAgbV9jbGllbnQgPSBjbGllbnQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgJKHJldmlzaW9uIDgwOTkwKQorKysgU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3
ICs3Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU3RvcmFnZVRyYWNrZXIoY29uc3QgU3Ry
aW5nJiBzdG9yYWdlUGF0aCk7CiAKLSAgICBTdHJpbmcgdHJhY2tlckRhdGFiYXNlUGF0aCgpIGNv
bnN0OworICAgIFN0cmluZyB0cmFja2VyRGF0YWJhc2VQYXRoKCk7CiAgICAgdm9pZCBvcGVuVHJh
Y2tlckRhdGFiYXNlKGJvb2wgY3JlYXRlSWZEb2VzTm90RXhpc3QpOwogCiAgICAgdm9pZCBzZXRT
dG9yYWdlRGlyZWN0b3J5UGF0aChjb25zdCBTdHJpbmcmKTsKQEAgLTkxLDE2ICs5MSwxNyBAQCBw
cml2YXRlOgogICAgIAogICAgIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7CiAKKyAgICAvLyBHdWFy
ZCBmb3IgbV9kYXRhYmFzZSwgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aCBhbmQgc3RhdGljIFN0cmlu
Z3MgaW4gc3luY0ZpbGVTeXN0ZW1BbmRUcmFja2VyRGF0YWJhc2UoKS4KICAgICBNdXRleCBtX2Rh
dGFiYXNlR3VhcmQ7CiAgICAgU1FMaXRlRGF0YWJhc2UgbV9kYXRhYmFzZTsKLQogICAgIFN0cmlu
ZyBtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoOwogCisgICAgTXV0ZXggbV9jbGllbnRHdWFyZDsKICAg
ICBTdG9yYWdlVHJhY2tlckNsaWVudCogbV9jbGllbnQ7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8
U3RyaW5nPiBPcmlnaW5TZXQ7Ci0KKyAgICAvLyBHdWFyZCBmb3IgbV9vcmlnaW5TZXQgYW5kIG1f
b3JpZ2luc0JlaW5nRGVsZXRlZC4KICAgICBNdXRleCBtX29yaWdpblNldEd1YXJkOworICAgIHR5
cGVkZWYgSGFzaFNldDxTdHJpbmc+IE9yaWdpblNldDsKICAgICBPcmlnaW5TZXQgbV9vcmlnaW5T
ZXQ7CiAgICAgT3JpZ2luU2V0IG1fb3JpZ2luc0JlaW5nRGVsZXRlZDsKIAo=
</data>
<flag name="review"
          id="77792"
          type_id="1"
          status="+"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>