<?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>136811</bug_id>
          
          <creation_ts>2014-09-14 22:35:57 -0700</creation_ts>
          <short_desc>DFG ref count calculation should be reusable</short_desc>
          <delta_ts>2014-09-15 12:43:47 -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>136330</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035168</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-14 22:35:57 -0700</bug_when>
    <thetext>Currently only the DCE phase knows how to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035169</commentid>
    <comment_count>1</comment_count>
      <attachid>238104</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-14 22:38:16 -0700</bug_when>
    <thetext>Created attachment 238104
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035292</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-09-15 12:43:47 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/173626</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238104</attachid>
            <date>2014-09-14 22:38:16 -0700</date>
            <delta_ts>2014-09-15 08:12:27 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>11302</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTczNjEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBA
CisyMDE0LTA5LTE0ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
REZHIHJlZiBjb3VudCBjYWxjdWxhdGlvbiBzaG91bGQgYmUgcmV1c2FibGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjgxMQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSGVuY2Vmb3J0aCBp
ZiB5b3UgY2FsbCBHcmFwaDo6Y29tcHV0ZVJlZkNvdW50cygpLCBhIG5pZnR5IE8obikgb3BlcmF0
aW9uLCBldmVyeSBOb2RlCisgICAgICAgIHdpbGwgYmUgYWJsZSB0byB0ZWxsIHlvdSBob3cgbWFu
eSBwbGFjZXMgaXQgaXMgdXNlZCBmcm9tLiBDdXJyZW50bHkgb25seSBEQ0UgdXNlcyB0aGlzLAor
ICAgICAgICBidXQgaXQgd2lsbCBiZSB1c2VmdWwgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzYzMzAuCisKKyAgICAgICAgKiBkZmcvREZHRENFUGhhc2UuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkRDRVBoYXNlOjpydW4pOgorICAgICAgICAoSlNDOjpERkc6
OkRDRVBoYXNlOjpmaW5kVHlwZUNoZWNrUm9vdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRG
Rzo6RENFUGhhc2U6OmNvdW50Tm9kZSk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkRGRzo6RENF
UGhhc2U6OmNvdW50RWRnZSk6IERlbGV0ZWQuCisgICAgICAgICogZGZnL0RGR0dyYXBoLmNwcDoK
KyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6Y29tcHV0ZVJlZkNvdW50cyk6CisgICAgICAgICog
ZGZnL0RGR0dyYXBoLmg6CisKIDIwMTQtMDktMTIgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVyZ2UgSlNHbG9iYWxPYmplY3Q6OnJlc2V0KCkgaW50byA6
OmluaXQoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEQ0VQaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEQ0VQaGFzZS5jcHAJ
KHJldmlzaW9uIDE3MzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRENFUGhh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3MiArNDgsNyBAQCBwdWJsaWM6CiAgICAgewog
ICAgICAgICBBU1NFUlQobV9ncmFwaC5tX2Zvcm0gPT0gVGhyZWFkZWRDUFMgfHwgbV9ncmFwaC5t
X2Zvcm0gPT0gU1NBKTsKICAgICAgICAgCi0gICAgICAgIC8vIEZpcnN0IHJlc2V0IHRoZSBjb3Vu
dHMgdG8gMCBmb3IgYWxsIG5vZGVzLgotICAgICAgICAvLwotICAgICAgICAvLyBBbHNvIHRha2Ug
dGhpcyBvcHBvcnR1bml0eSB0byBwcmV0ZW5kIHRoYXQgQ2hlY2sgbm9kZXMgYXJlIG5vdCBOb2Rl
TXVzdEdlbmVyYXRlLiBDaGVjawotICAgICAgICAvLyBub2RlcyBhcmUgTXVzdEdlbmVyYXRlIGJl
Y2F1c2UgdGhleSBhcmUgZXhlY3V0ZWQgZm9yIGVmZmVjdCwgYnV0IHRoZXkgZm9sbG93IHRoZSBz
YW1lCi0gICAgICAgIC8vIERDRSBydWxlcyBhcyBub2RlcyB0aGF0IGFyZW4ndCBNdXN0R2VuZXJh
dGU6IHRoZXkgb25seSBjb250cmlidXRlIHRvIHRoZSByZWYgY291bnQgb2YKLSAgICAgICAgLy8g
dGhlaXIgY2hpbGRyZW4gaWYgdGhlIGVkZ2VzIHJlcXVpcmUgY2hlY2tzLiBOb24tY2hlY2tpbmcg
ZWRnZXMgYXJlIHJlbW92ZWQuIE5vdGUgdGhhdAotICAgICAgICAvLyBmb3IgYW55IENoZWNrcyBs
ZWZ0IG92ZXIsIHRoaXMgcGhhc2Ugd2lsbCB0dXJuIHRoZW0gYmFjayBpbnRvIE5vZGVNdXN0R2Vu
ZXJhdGUuCi0gICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRl
eCA8IG1fZ3JhcGgubnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgewotICAgICAgICAgICAgQmFz
aWNCbG9jayogYmxvY2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOwotICAgICAgICAgICAg
aWYgKCFibG9jaykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGZvciAo
dW5zaWduZWQgaW5kZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKTsgaW5kZXhJbkJsb2NrLS07KSB7
Ci0gICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChpbmRleEluQmxvY2spOwot
ICAgICAgICAgICAgICAgIGlmIChub2RlLT5vcCgpID09IENoZWNrKQotICAgICAgICAgICAgICAg
ICAgICBub2RlLT5jbGVhckZsYWdzKE5vZGVNdXN0R2VuZXJhdGUpOwotICAgICAgICAgICAgICAg
IG5vZGUtPnNldFJlZkNvdW50KDApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZm9yICh1
bnNpZ25lZCBwaGlJbmRleCA9IGJsb2NrLT5waGlzLnNpemUoKTsgcGhpSW5kZXgtLTspCi0gICAg
ICAgICAgICAgICAgYmxvY2stPnBoaXNbcGhpSW5kZXhdLT5zZXRSZWZDb3VudCgwKTsKLSAgICAg
ICAgfQotICAgIAotICAgICAgICAvLyBOb3cgZmluZCB0aGUgcm9vdHM6Ci0gICAgICAgIC8vIC0g
Tm9kZXMgdGhhdCBhcmUgbXVzdC1nZW5lcmF0ZS4KLSAgICAgICAgLy8gLSBOb2RlcyB0aGF0IGFy
ZSByZWFjaGFibGUgZnJvbSB0eXBlIGNoZWNrcy4KLSAgICAgICAgLy8gU2V0IHRoZWlyIHJlZiBj
b3VudHMgdG8gMSBhbmQgcHV0IHRoZW0gb24gdGhlIHdvcmtsaXN0LgotICAgICAgICBmb3IgKEJs
b2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2dyYXBoLm51bUJsb2Nrcygp
OyArK2Jsb2NrSW5kZXgpIHsKLSAgICAgICAgICAgIEJhc2ljQmxvY2sqIGJsb2NrID0gbV9ncmFw
aC5ibG9jayhibG9ja0luZGV4KTsKLSAgICAgICAgICAgIGlmICghYmxvY2spCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGluZGV4SW5CbG9jayA9
IGJsb2NrLT5zaXplKCk7IGluZGV4SW5CbG9jay0tOykgewotICAgICAgICAgICAgICAgIE5vZGUq
IG5vZGUgPSBibG9jay0+YXQoaW5kZXhJbkJsb2NrKTsKLSAgICAgICAgICAgICAgICBERkdfTk9E
RV9ET19UT19DSElMRFJFTihtX2dyYXBoLCBub2RlLCBmaW5kVHlwZUNoZWNrUm9vdCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKCEobm9kZS0+ZmxhZ3MoKSAmIE5vZGVNdXN0R2VuZXJhdGUpKQotICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPnBv
c3RmaXhSZWYoKSkKLSAgICAgICAgICAgICAgICAgICAgbV93b3JrbGlzdC5hcHBlbmQobm9kZSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHdoaWxlICghbV93
b3JrbGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHdoaWxlICghbV93b3JrbGlzdC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgICAgICBOb2RlKiBub2RlID0gbV93b3JrbGlzdC5sYXN0KCk7
Ci0gICAgICAgICAgICAgICAgbV93b3JrbGlzdC5yZW1vdmVMYXN0KCk7Ci0gICAgICAgICAgICAg
ICAgQVNTRVJUKG5vZGUtPnNob3VsZEdlbmVyYXRlKCkpOyAvLyBJdCBzaG91bGQgbm90IGJlIG9u
IHRoZSB3b3JrbGlzdCB1bmxlc3MgaXQncyByZWYnZWQuCi0gICAgICAgICAgICAgICAgREZHX05P
REVfRE9fVE9fQ0hJTERSRU4obV9ncmFwaCwgbm9kZSwgY291bnRFZGdlKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKG1fZ3JhcGgubV9mb3JtID09IFNTQSkg
ewotICAgICAgICAgICAgICAgIC8vIEZpbmQgUGhpLT5VcHNpbG9uIGVkZ2VzLCB3aGljaCBhcmUg
cmVwcmVzZW50ZWQgYXMgbWV0YS1kYXRhIGluIHRoZQotICAgICAgICAgICAgICAgIC8vIFVwc2ls
b24uCi0gICAgICAgICAgICAgICAgZm9yIChCbG9ja0luZGV4IGJsb2NrSW5kZXggPSBtX2dyYXBo
Lm51bUJsb2NrcygpOyBibG9ja0luZGV4LS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIEJhc2lj
QmxvY2sqIGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKCFibG9jaykKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG5vZGVJbmRleCA9IGJsb2NrLT5zaXplKCk7
IG5vZGVJbmRleC0tOykgewotICAgICAgICAgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IGJs
b2NrLT5hdChub2RlSW5kZXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5vZGUtPm9w
KCkgIT0gVXBzaWxvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChub2RlLT5zaG91bGRHZW5lcmF0ZSgpKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKG5vZGUtPnBoaSgpLT5zaG91bGRHZW5lcmF0ZSgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvdW50Tm9kZShub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICBtX2dyYXBoLmNvbXB1
dGVSZWZDb3VudHMoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChtX2dyYXBoLm1fZm9ybSA9PSBT
U0EpIHsKICAgICAgICAgICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX2dyYXBoLmJsb2Nr
c0luUHJlT3JkZXIoKSkKQEAgLTE1NywzMSArOTIsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIHZvaWQgZmluZFR5cGVDaGVja1Jvb3QoTm9kZSosIEVkZ2UgZWRnZSkKLSAgICB7
Ci0gICAgICAgIC8vIFdlIG1heSBoYXZlIGFuICJ1bnByb3ZlZCIgdW50eXBlZCB1c2UgZm9yIGNv
ZGUgdGhhdCBpcyB1bnJlYWNoYWJsZS4gVGhlIENGQQotICAgICAgICAvLyB3aWxsIGp1c3Qgbm90
IGhhdmUgZ290dGVuIGFyb3VuZCB0byBpdC4KLSAgICAgICAgaWYgKGVkZ2UuaXNQcm92ZWQoKSB8
fCBlZGdlLndpbGxOb3RIYXZlQ2hlY2soKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
aWYgKCFlZGdlLT5wb3N0Zml4UmVmKCkpCi0gICAgICAgICAgICBtX3dvcmtsaXN0LmFwcGVuZChl
ZGdlLm5vZGUoKSk7Ci0gICAgfQotICAgIAotICAgIHZvaWQgY291bnROb2RlKE5vZGUqIG5vZGUp
Ci0gICAgewotICAgICAgICBpZiAobm9kZS0+cG9zdGZpeFJlZigpKQotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBtX3dvcmtsaXN0LmFwcGVuZChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAg
dm9pZCBjb3VudEVkZ2UoTm9kZSosIEVkZ2UgZWRnZSkKLSAgICB7Ci0gICAgICAgIC8vIERvbid0
IGNvdW50IGVkZ2VzIHRoYXQgYXJlIGFscmVhZHkgY291bnRlZCBmb3IgdGhlaXIgdHlwZSBjaGVj
a3MuCi0gICAgICAgIGlmICghKGVkZ2UuaXNQcm92ZWQoKSB8fCBlZGdlLndpbGxOb3RIYXZlQ2hl
Y2soKSkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNvdW50Tm9kZShlZGdlLm5vZGUo
KSk7Ci0gICAgfQotICAgIAogICAgIHZvaWQgZml4dXBCbG9jayhCYXNpY0Jsb2NrKiBibG9jaykK
ICAgICB7CiAgICAgICAgIGlmICghYmxvY2spCkBAIC0zMjcsNyArMjM3LDYgQEAgcHJpdmF0ZToK
ICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBWZWN0b3I8Tm9kZSosIDEyOD4gbV93b3JrbGlz
dDsKICAgICBJbnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CiB9OwogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmNwcAkocmV2aXNpb24gMTczNjEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Miw2
ICs1NjIsMTI0IEBAIHZvaWQgR3JhcGg6OnJlc2V0UmVhY2hhYmlsaXR5KCkKICAgICBkZXRlcm1p
bmVSZWFjaGFiaWxpdHkoKTsKIH0KIAorbmFtZXNwYWNlIHsKKworY2xhc3MgUmVmQ291bnRDYWxj
dWxhdG9yIHsKK3B1YmxpYzoKKyAgICBSZWZDb3VudENhbGN1bGF0b3IoR3JhcGgmIGdyYXBoKQor
ICAgICAgICA6IG1fZ3JhcGgoZ3JhcGgpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkIGNh
bGN1bGF0ZSgpCisgICAgeworICAgICAgICAvLyBGaXJzdCByZXNldCB0aGUgY291bnRzIHRvIDAg
Zm9yIGFsbCBub2Rlcy4KKyAgICAgICAgLy8KKyAgICAgICAgLy8gQWxzbyB0YWtlIHRoaXMgb3Bw
b3J0dW5pdHkgdG8gcHJldGVuZCB0aGF0IENoZWNrIG5vZGVzIGFyZSBub3QgTm9kZU11c3RHZW5l
cmF0ZS4gQ2hlY2sKKyAgICAgICAgLy8gbm9kZXMgYXJlIE11c3RHZW5lcmF0ZSBiZWNhdXNlIHRo
ZXkgYXJlIGV4ZWN1dGVkIGZvciBlZmZlY3QsIGJ1dCB0aGV5IGZvbGxvdyB0aGUgc2FtZQorICAg
ICAgICAvLyBEQ0UgcnVsZXMgYXMgbm9kZXMgdGhhdCBhcmVuJ3QgTXVzdEdlbmVyYXRlOiB0aGV5
IG9ubHkgY29udHJpYnV0ZSB0byB0aGUgcmVmIGNvdW50IG9mCisgICAgICAgIC8vIHRoZWlyIGNo
aWxkcmVuIGlmIHRoZSBlZGdlcyByZXF1aXJlIGNoZWNrcy4gTm9uLWNoZWNraW5nIGVkZ2VzIGFy
ZSByZW1vdmVkLiBOb3RlIHRoYXQKKyAgICAgICAgLy8gZm9yIGFueSBDaGVja3MgbGVmdCBvdmVy
LCB0aGlzIHBoYXNlIHdpbGwgdHVybiB0aGVtIGJhY2sgaW50byBOb2RlTXVzdEdlbmVyYXRlLgor
ICAgICAgICBmb3IgKEJsb2NrSW5kZXggYmxvY2tJbmRleCA9IDA7IGJsb2NrSW5kZXggPCBtX2dy
YXBoLm51bUJsb2NrcygpOyArK2Jsb2NrSW5kZXgpIHsKKyAgICAgICAgICAgIEJhc2ljQmxvY2sq
IGJsb2NrID0gbV9ncmFwaC5ibG9jayhibG9ja0luZGV4KTsKKyAgICAgICAgICAgIGlmICghYmxv
Y2spCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGluZGV4SW5CbG9jayA9IGJsb2NrLT5zaXplKCk7IGluZGV4SW5CbG9jay0tOykKKyAgICAgICAg
ICAgICAgICBibG9jay0+YXQoaW5kZXhJbkJsb2NrKS0+c2V0UmVmQ291bnQoMCk7CisgICAgICAg
ICAgICBmb3IgKHVuc2lnbmVkIHBoaUluZGV4ID0gYmxvY2stPnBoaXMuc2l6ZSgpOyBwaGlJbmRl
eC0tOykKKyAgICAgICAgICAgICAgICBibG9jay0+cGhpc1twaGlJbmRleF0tPnNldFJlZkNvdW50
KDApOworICAgICAgICB9CisgICAgCisgICAgICAgIC8vIE5vdyBmaW5kIHRoZSByb290czoKKyAg
ICAgICAgLy8gLSBOb2RlcyB0aGF0IGFyZSBtdXN0LWdlbmVyYXRlLgorICAgICAgICAvLyAtIE5v
ZGVzIHRoYXQgYXJlIHJlYWNoYWJsZSBmcm9tIHR5cGUgY2hlY2tzLgorICAgICAgICAvLyBTZXQg
dGhlaXIgcmVmIGNvdW50cyB0byAxIGFuZCBwdXQgdGhlbSBvbiB0aGUgd29ya2xpc3QuCisgICAg
ICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0luZGV4ID0gMDsgYmxvY2tJbmRleCA8IG1fZ3JhcGgu
bnVtQmxvY2tzKCk7ICsrYmxvY2tJbmRleCkgeworICAgICAgICAgICAgQmFzaWNCbG9jayogYmxv
Y2sgPSBtX2dyYXBoLmJsb2NrKGJsb2NrSW5kZXgpOworICAgICAgICAgICAgaWYgKCFibG9jaykK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW5k
ZXhJbkJsb2NrID0gYmxvY2stPnNpemUoKTsgaW5kZXhJbkJsb2NrLS07KSB7CisgICAgICAgICAg
ICAgICAgTm9kZSogbm9kZSA9IGJsb2NrLT5hdChpbmRleEluQmxvY2spOworICAgICAgICAgICAg
ICAgIERGR19OT0RFX0RPX1RPX0NISUxEUkVOKG1fZ3JhcGgsIG5vZGUsIGZpbmRUeXBlQ2hlY2tS
b290KTsKKyAgICAgICAgICAgICAgICBpZiAoIShub2RlLT5mbGFncygpICYgTm9kZU11c3RHZW5l
cmF0ZSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlm
IChub2RlLT5vcCgpID09IENoZWNrKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdlIGRvbid0
IHRyZWF0IENoZWNrIG5vZGVzIGFzIE11c3RHZW5lcmF0ZS4gV2Ugd2lsbCBnbGFkbHkKKyAgICAg
ICAgICAgICAgICAgICAgLy8ga2lsbCB0aGVtIG9mZiBpbiB0aGlzIHBoYXNlLgorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
aWYgKCFub2RlLT5wb3N0Zml4UmVmKCkpCisgICAgICAgICAgICAgICAgICAgIG1fd29ya2xpc3Qu
YXBwZW5kKG5vZGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICB3aGlsZSAoIW1fd29ya2xpc3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICB3aGlsZSAoIW1f
d29ya2xpc3QuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgTm9kZSogbm9kZSA9IG1fd29y
a2xpc3QubGFzdCgpOworICAgICAgICAgICAgICAgIG1fd29ya2xpc3QucmVtb3ZlTGFzdCgpOwor
ICAgICAgICAgICAgICAgIEFTU0VSVChub2RlLT5zaG91bGRHZW5lcmF0ZSgpKTsgLy8gSXQgc2hv
dWxkIG5vdCBiZSBvbiB0aGUgd29ya2xpc3QgdW5sZXNzIGl0J3MgcmVmJ2VkLgorICAgICAgICAg
ICAgICAgIERGR19OT0RFX0RPX1RPX0NISUxEUkVOKG1fZ3JhcGgsIG5vZGUsIGNvdW50RWRnZSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChtX2dyYXBoLm1f
Zm9ybSA9PSBTU0EpIHsKKyAgICAgICAgICAgICAgICAvLyBGaW5kIFBoaS0+VXBzaWxvbiBlZGdl
cywgd2hpY2ggYXJlIHJlcHJlc2VudGVkIGFzIG1ldGEtZGF0YSBpbiB0aGUKKyAgICAgICAgICAg
ICAgICAvLyBVcHNpbG9uLgorICAgICAgICAgICAgICAgIGZvciAoQmxvY2tJbmRleCBibG9ja0lu
ZGV4ID0gbV9ncmFwaC5udW1CbG9ja3MoKTsgYmxvY2tJbmRleC0tOykgeworICAgICAgICAgICAg
ICAgICAgICBCYXNpY0Jsb2NrKiBibG9jayA9IG1fZ3JhcGguYmxvY2soYmxvY2tJbmRleCk7Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghYmxvY2spCisgICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBub2RlSW5kZXggPSBi
bG9jay0+c2l6ZSgpOyBub2RlSW5kZXgtLTspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIE5v
ZGUqIG5vZGUgPSBibG9jay0+YXQobm9kZUluZGV4KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChub2RlLT5vcCgpICE9IFVwc2lsb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS0+c2hvdWxkR2VuZXJh
dGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChub2RlLT5waGkoKS0+c2hvdWxkR2VuZXJhdGUoKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb3VudE5vZGUobm9kZSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cisg
ICAgCitwcml2YXRlOgorICAgIHZvaWQgZmluZFR5cGVDaGVja1Jvb3QoTm9kZSosIEVkZ2UgZWRn
ZSkKKyAgICB7CisgICAgICAgIC8vIFdlIG1heSBoYXZlIGFuICJ1bnByb3ZlZCIgdW50eXBlZCB1
c2UgZm9yIGNvZGUgdGhhdCBpcyB1bnJlYWNoYWJsZS4gVGhlIENGQQorICAgICAgICAvLyB3aWxs
IGp1c3Qgbm90IGhhdmUgZ290dGVuIGFyb3VuZCB0byBpdC4KKyAgICAgICAgaWYgKGVkZ2UuaXNQ
cm92ZWQoKSB8fCBlZGdlLndpbGxOb3RIYXZlQ2hlY2soKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgaWYgKCFlZGdlLT5wb3N0Zml4UmVmKCkpCisgICAgICAgICAgICBtX3dvcmtsaXN0
LmFwcGVuZChlZGdlLm5vZGUoKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgY291bnROb2RlKE5v
ZGUqIG5vZGUpCisgICAgeworICAgICAgICBpZiAobm9kZS0+cG9zdGZpeFJlZigpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBtX3dvcmtsaXN0LmFwcGVuZChub2RlKTsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBjb3VudEVkZ2UoTm9kZSosIEVkZ2UgZWRnZSkKKyAgICB7CisgICAgICAg
IC8vIERvbid0IGNvdW50IGVkZ2VzIHRoYXQgYXJlIGFscmVhZHkgY291bnRlZCBmb3IgdGhlaXIg
dHlwZSBjaGVja3MuCisgICAgICAgIGlmICghKGVkZ2UuaXNQcm92ZWQoKSB8fCBlZGdlLndpbGxO
b3RIYXZlQ2hlY2soKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGNvdW50Tm9kZShl
ZGdlLm5vZGUoKSk7CisgICAgfQorICAgIAorICAgIEdyYXBoJiBtX2dyYXBoOworICAgIFZlY3Rv
cjxOb2RlKiwgMTI4PiBtX3dvcmtsaXN0OworfTsKKworfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNl
CisKK3ZvaWQgR3JhcGg6OmNvbXB1dGVSZWZDb3VudHMoKQoreworICAgIFJlZkNvdW50Q2FsY3Vs
YXRvciBjYWxjdWxhdG9yKCp0aGlzKTsKKyAgICBjYWxjdWxhdG9yLmNhbGN1bGF0ZSgpOworfQor
CiB2b2lkIEdyYXBoOjpraWxsQmxvY2tBbmRJdHNDb250ZW50cyhCYXNpY0Jsb2NrKiBibG9jaykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIHBoaUluZGV4ID0gYmxvY2stPnBoaXMuc2l6ZSgpOyBwaGlJ
bmRleC0tOykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgJKHJldmlzaW9u
IDE3MzYxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcwLDYgKzU3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRldGVybWluZVJl
YWNoYWJpbGl0eSgpOwogICAgIHZvaWQgcmVzZXRSZWFjaGFiaWxpdHkoKTsKICAgICAKKyAgICB2
b2lkIGNvbXB1dGVSZWZDb3VudHMoKTsKKyAgICAKICAgICB1bnNpZ25lZCB2YXJBcmdOdW1DaGls
ZHJlbihOb2RlKiBub2RlKQogICAgIHsKICAgICAgICAgQVNTRVJUKG5vZGUtPmZsYWdzKCkgJiBO
b2RlSGFzVmFyQXJncyk7Cg==
</data>
<flag name="review"
          id="262868"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>