<?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>126109</bug_id>
          
          <creation_ts>2013-12-20 19:18:49 -0800</creation_ts>
          <short_desc>CStack: Introduce JSStack::ensureCapacityFor().</short_desc>
          <delta_ts>2013-12-29 08:38:27 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>125928</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962181</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-20 19:18:49 -0800</bug_when>
    <thetext>JSStack::ensureCapacityFor() will be able to handle both the JS stack on the C stack or a separate stack.  Clients should use JSStack::ensureCapacity() when doing stack checks for JS stack needs in place of JSStack::grow().  JSStack::grow() is now private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962184</commentid>
    <comment_count>1</comment_count>
      <attachid>219832</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-20 19:26:28 -0800</bug_when>
    <thetext>Created attachment 219832
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962211</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-20 23:10:01 -0800</bug_when>
    <thetext>Landed in r160960 on the jsCStack: &lt;http://trac.webkit.org/r160960&gt;.

Still need a review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963211</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-29 08:38:27 -0800</bug_when>
    <thetext>Thanks for the review.  Review status updated in r161118: &lt;http://trac.webkit.org/r161118&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219832</attachid>
            <date>2013-12-20 19:26:28 -0800</date>
            <delta_ts>2013-12-29 08:35:52 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-126109.patch</filename>
            <type>text/plain</type>
            <size>12554</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYwOTU2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDEzLTEyLTIwICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
U3RhY2s6IEludHJvZHVjZSBKU1N0YWNrOjplbnN1cmVDYXBhY2l0eUZvcigpLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MTA5LgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsaWVudCBjb2RlIHNob3Vs
ZCB1c2UgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IoKSB3aGVuIGNoZWNraW5nIGZvcgorICAg
ICAgICBhdmFpbGFibGUgc3RhY2sgc3BhY2UgZm9yIHB1c2hpbmcgSlMgZnJhbWVzIG9yIG1ha2lu
ZyBhcml0eSBhZGp1c3RtZW50cy4KKyAgICAgICAgSlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3Io
KSB3b3JrcyBmb3IgYm90aCBjYXNlcyBvZiB0aGUgSlMgc3RhY2sgb24gdGhlCisgICAgICAgIEMg
c3RhY2sgb3IgYXMgYSBzcGVyYXRlIHN0YWNrLgorCisgICAgICAgIEpTU3RhY2s6Omdyb3coKSBp
cyBub3cgcHJpdmF0ZSwgYW5kIGlzIG9ubHkgdXNlZCBieSB0aGUgQyBMb29wIExMSU5ULgorCisg
ICAgICAgIEFsc28gbWFkZSBzb21lIG90aGVyIEpTU3RhY2sgbWV0aG9kcyBwcml2YXRlIGFzIHRo
ZXkgYXJlIG5vdCBuZWVkZWQKKyAgICAgICAgb3V0c2lkZSBvZiB0aGUgSlNTVGFjayBjbGFzcy4K
KworICAgICAgICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cHJl
cGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBmdGwvRlRMT1NSRW50cnkuY3BwOgorICAgICAgICAo
SlNDOjpGVEw6OnByZXBhcmVPU1JFbnRyeSk6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSW50ZXJw
cmV0ZXIuY3BwOgorICAgICAgICAoSlNDOjpzaXplRnJhbWVGb3JWYXJhcmdzKToKKyAgICAgICAg
KiBpbnRlcnByZXRlci9KU1N0YWNrLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNTdGFja0lu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6ZW5zdXJlQ2FwYWNpdHlGb3IpOgorICAg
ICAgICAoSlNDOjpKU1N0YWNrOjp0b3BPZlN0YWNrRm9yQ2FwYWNpdHlDaGVjayk6CisgICAgICAg
ICogbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRf
U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmg6Cisg
ICAgICAgIChKU0M6OkNvbW1vblNsb3dQYXRoczo6YXJpdHlDaGVja0Zvcik6CisKIDIwMTMtMTIt
MjAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBBcml0eSBjaGVj
ayBzdGFjayByZXN0b3JhdGlvbiBzaG91bGQgcHJlc2VydmUgdGhlIEFyZ3VtZW50Q291bnQgaW4g
Y2FzZSB0aGVyZSBpcyBhIHJlZ2lzdGVyIHJlc3RvcmF0aW9uIHRodW5rIGJlbG93IGl0CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAkocmV2aXNpb24gMTYw
OTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFbnRyeS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE4OCw3ICsxODgsNyBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0
YXRlKiBleGVjLCBDCiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0IHJ1
bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKICAgICB1bnNpZ25lZCBmcmFtZVNpemUg
PSBqaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5kRXhp
dCgpOwotICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmdyb3coJmV4ZWMtPnJlZ2lz
dGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGZyYW1lU2l6ZSkub2Zmc2V0KCldKSkgewor
ICAgIGlmICghdm0tPmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9yKCZleGVj
LT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUgLSAxKS5vZmZz
ZXQoKV0pKSB7CiAgICAgICAgIGlmIChPcHRpb25zOjp2ZXJib3NlT1NSKCkpCiAgICAgICAgICAg
ICBkYXRhTG9nRigiICAgIE9TUiBmYWlsZWQgYmVjYXVzZSBzdGFjayBncm93dGggZmFpbGVkLlxu
Iik7CiAgICAgICAgIHJldHVybiAwOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFbnRyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExPU1JFbnRyeS5jcHAJKHJldmlzaW9uIDE2MDk0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMT1NSRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCw3ICs4MCw3IEBAIHZv
aWQqIHByZXBhcmVPU1JFbnRyeSgKICAgICAgICAgc2NyYXRjaFtsb2NhbF0gPSBKU1ZhbHVlOjpl
bmNvZGUodmFsdWVzLmxvY2FsKGxvY2FsKSk7CiAgICAgCiAgICAgaW50IHN0YWNrRnJhbWVTaXpl
ID0gZW50cnlDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5k
RXhpdCgpOwotICAgIGlmICghdm0uaW50ZXJwcmV0ZXItPnN0YWNrKCkuZ3JvdygmZXhlYy0+cmVn
aXN0ZXJzKClbdmlydHVhbFJlZ2lzdGVyRm9yTG9jYWwoc3RhY2tGcmFtZVNpemUpLm9mZnNldCgp
XSkpIHsKKyAgICBpZiAoIXZtLmludGVycHJldGVyLT5zdGFjaygpLmVuc3VyZUNhcGFjaXR5Rm9y
KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JMb2NhbChzdGFja0ZyYW1lU2l6
ZSAtIDEpLm9mZnNldCgpXSkpIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkK
ICAgICAgICAgICAgIGRhdGFMb2coIiAgICBPU1IgZmFpbGVkIGJlY2F1c2Ugc3RhY2sgZ3Jvd3Ro
IGZhaWxlZC5cbiIpOwogICAgICAgICByZXR1cm4gMDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAkocmV2aXNpb24gMTYwOTQ5
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTYwLDcgKzE2MCw3IEBAIENhbGxGcmFtZSogc2l6ZUZyYW1lRm9y
VmFyYXJncyhDYWxsRnJhbWUKICAgICAgICAgdW5zaWduZWQgYXJndW1lbnRDb3VudEluY2x1ZGlu
Z1RoaXMgPSBjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzKCk7CiAgICAgICAg
IHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBs
ZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCksIC1maXJzdEZyZWVSZWdpc3RlciArIGFyZ3Vt
ZW50Q291bnRJbmNsdWRpbmdUaGlzICsgSlNTdGFjazo6Q2FsbEZyYW1lSGVhZGVyU2l6ZSArIDEp
OwogICAgICAgICBDYWxsRnJhbWUqIG5ld0NhbGxGcmFtZSA9IENhbGxGcmFtZTo6Y3JlYXRlKGNh
bGxGcmFtZS0+cmVnaXN0ZXJzKCkgLSBwYWRkZWRDYWxsZWVGcmFtZU9mZnNldCk7Ci0gICAgICAg
IGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRz
ICsgMSB8fCAhc3RhY2stPmdyb3cobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKKyAgICAg
ICAgaWYgKGFyZ3VtZW50Q291bnRJbmNsdWRpbmdUaGlzID4gQXJndW1lbnRzOjpNYXhBcmd1bWVu
dHMgKyAxIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSkpIHsKICAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxs
RnJhbWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKICAgICAgICAgICAg
IHJldHVybiAwOwogICAgICAgICB9CkBAIC0xNzEsNyArMTcxLDcgQEAgQ2FsbEZyYW1lKiBzaXpl
RnJhbWVGb3JWYXJhcmdzKENhbGxGcmFtZQogICAgICAgICB1bnNpZ25lZCBhcmd1bWVudENvdW50
SW5jbHVkaW5nVGhpcyA9IDE7CiAgICAgICAgIHVuc2lnbmVkIHBhZGRlZENhbGxlZUZyYW1lT2Zm
c2V0ID0gV1RGOjpyb3VuZFVwVG9NdWx0aXBsZU9mKHN0YWNrQWxpZ25tZW50UmVnaXN0ZXJzKCks
ICAtZmlyc3RGcmVlUmVnaXN0ZXIgKyBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyArIEpTU3Rh
Y2s6OkNhbGxGcmFtZUhlYWRlclNpemUgKyAxKTsKICAgICAgICAgQ2FsbEZyYW1lKiBuZXdDYWxs
RnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJlZ2lzdGVycygpIC0gcGFkZGVk
Q2FsbGVlRnJhbWVPZmZzZXQpOwotICAgICAgICBpZiAoIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFt
ZS0+cmVnaXN0ZXJzKCkpKSB7CisgICAgICAgIGlmICghc3RhY2stPmVuc3VyZUNhcGFjaXR5Rm9y
KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkpKSB7CiAgICAgICAgICAgICBjYWxsRnJhbWUtPnZt
KCkudGhyb3dFeGNlcHRpb24oY2FsbEZyYW1lLCBjcmVhdGVTdGFja092ZXJmbG93RXJyb3IoY2Fs
bEZyYW1lKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtMTg4LDcgKzE4
OCw3IEBAIENhbGxGcmFtZSogc2l6ZUZyYW1lRm9yVmFyYXJncyhDYWxsRnJhbWUKICAgICAgICAg
dW5zaWduZWQgYXJnQ291bnQgPSBhcmdzT2JqZWN0LT5sZW5ndGgoY2FsbEZyYW1lKTsKICAgICAg
ICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5kVXBUb011bHRp
cGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lzdGVyICsgQ2Fs
bEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CiAgICAgICAgIENhbGxGcmFtZSogbmV3
Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSAtIHBh
ZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKLSAgICAgICAgaWYgKGFyZ0NvdW50ID4gQXJndW1lbnRz
OjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVnaXN0ZXJzKCkp
KSB7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFz
dGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkpIHsKICAg
ICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJhbWUsIGNyZWF0
ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKICAgICAgICAgICAgIHJldHVybiAwOwog
ICAgICAgICB9CkBAIC0yMDAsNyArMjAwLDcgQEAgQ2FsbEZyYW1lKiBzaXplRnJhbWVGb3JWYXJh
cmdzKENhbGxGcmFtZQogICAgICAgICB1bnNpZ25lZCBhcmdDb3VudCA9IGFycmF5LT5sZW5ndGgo
KTsKICAgICAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBXVEY6OnJvdW5k
VXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0RnJlZVJlZ2lz
dGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CiAgICAgICAgIENhbGxG
cmFtZSogbmV3Q2FsbEZyYW1lID0gQ2FsbEZyYW1lOjpjcmVhdGUoY2FsbEZyYW1lLT5yZWdpc3Rl
cnMoKSAtIHBhZGRlZENhbGxlZUZyYW1lT2Zmc2V0KTsKLSAgICAgICAgaWYgKGFyZ0NvdW50ID4g
QXJndW1lbnRzOjpNYXhBcmd1bWVudHMgfHwgIXN0YWNrLT5ncm93KG5ld0NhbGxGcmFtZS0+cmVn
aXN0ZXJzKCkpKSB7CisgICAgICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1l
bnRzIHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMo
KSkpIHsKICAgICAgICAgICAgIGNhbGxGcmFtZS0+dm0oKS50aHJvd0V4Y2VwdGlvbihjYWxsRnJh
bWUsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKICAgICAgICAgICAgIHJl
dHVybiAwOwogICAgICAgICB9CkBAIC0yMTEsNyArMjExLDcgQEAgQ2FsbEZyYW1lKiBzaXplRnJh
bWVGb3JWYXJhcmdzKENhbGxGcmFtZQogICAgIHVuc2lnbmVkIGFyZ0NvdW50ID0gYXJnT2JqZWN0
LT5nZXQoY2FsbEZyYW1lLCBjYWxsRnJhbWUtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpLnRvVUlu
dDMyKGNhbGxGcmFtZSk7CiAgICAgdW5zaWduZWQgcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQgPSBX
VEY6OnJvdW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgLWZpcnN0
RnJlZVJlZ2lzdGVyICsgQ2FsbEZyYW1lOjpvZmZzZXRGb3IoYXJnQ291bnQgKyAxKSk7CiAgICAg
Q2FsbEZyYW1lKiBuZXdDYWxsRnJhbWUgPSBDYWxsRnJhbWU6OmNyZWF0ZShjYWxsRnJhbWUtPnJl
Z2lzdGVycygpIC0gcGFkZGVkQ2FsbGVlRnJhbWVPZmZzZXQpOwotICAgIGlmIChhcmdDb3VudCA+
IEFyZ3VtZW50czo6TWF4QXJndW1lbnRzIHx8ICFzdGFjay0+Z3JvdyhuZXdDYWxsRnJhbWUtPnJl
Z2lzdGVycygpKSkgeworICAgIGlmIChhcmdDb3VudCA+IEFyZ3VtZW50czo6TWF4QXJndW1lbnRz
IHx8ICFzdGFjay0+ZW5zdXJlQ2FwYWNpdHlGb3IobmV3Q2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkp
IHsKICAgICAgICAgY2FsbEZyYW1lLT52bSgpLnRocm93RXhjZXB0aW9uKGNhbGxGcmFtZSwgIGNy
ZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihjYWxsRnJhbWUpKTsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5o
CShyZXZpc2lvbiAxNjA5NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SlNTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC04MSw2ICs4MSw4IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBKU1N0YWNrKFZNJiwgc2l6ZV90IGNhcGFjaXR5ID0gZGVmYXVsdENhcGFjaXR5
KTsKICAgICAgICAgfkpTU3RhY2soKTsKICAgICAgICAgCisgICAgICAgIGJvb2wgZW5zdXJlQ2Fw
YWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spOworCiAgICAgICAgIHZvaWQgZ2F0aGVy
Q29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZlUm9vdHMmKTsKICAgICAgICAgdm9pZCBnYXRo
ZXJDb25zZXJ2YXRpdmVSb290cyhDb25zZXJ2YXRpdmVSb290cyYsIEpJVFN0dWJSb3V0aW5lU2V0
JiwgQ29kZUJsb2NrU2V0Jik7CiAgICAgICAgIHZvaWQgc2FuaXRpemVTdGFjaygpOwpAQCAtOTIs
MTQgKzk0LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHNpemVfdCBzaXplKCkgY29u
c3QgeyByZXR1cm4gaGlnaEFkZHJlc3MoKSAtIGxvd0FkZHJlc3MoKTsgfQogCi0gICAgICAgIGJv
b2wgZ3JvdyhSZWdpc3RlciogdG9wT2ZTdGFjayk7Ci0gICAgICAgIAogICAgICAgICBzdGF0aWMg
c2l6ZV90IGNvbW1pdHRlZEJ5dGVDb3VudCgpOwogICAgICAgICBzdGF0aWMgdm9pZCBpbml0aWFs
aXplVGhyZWFkaW5nKCk7CiAKLSAgICAgICAgUmVnaXN0ZXIqIHRvcE9mRnJhbWVGb3IoQ2FsbEZy
YW1lKik7CiAgICAgICAgIFJlZ2lzdGVyKiBzdGFydE9mRnJhbWVGb3IoQ2FsbEZyYW1lKik7Ci0g
ICAgICAgIFJlZ2lzdGVyKiB0b3BPZlN0YWNrKCk7CiAKICAgICAgICAgQ2FsbEZyYW1lKiBwdXNo
RnJhbWUoY2xhc3MgQ29kZUJsb2NrKiwgSlNTY29wZSosIGludCBhcmdzQ291bnQsIEpTT2JqZWN0
KiBjYWxsZWUpOwogCkBAIC0xMjAsNiArMTE4LDExIEBAIG5hbWVzcGFjZSBKU0MgewogI2VuZGlm
IC8vICFFTkFCTEUoREVCVUdfSlNTVEFDSykKIAogICAgIHByaXZhdGU6CisKKyAgICAgICAgaW5s
aW5lIFJlZ2lzdGVyKiB0b3BPZkZyYW1lRm9yKENhbGxGcmFtZSopOworICAgICAgICBpbmxpbmUg
UmVnaXN0ZXIqIHRvcE9mU3RhY2soKTsKKyAgICAgICAgaW5saW5lIFJlZ2lzdGVyKiB0b3BPZlN0
YWNrRm9yQ2FwYWNpdHlDaGVjaygpOworCiAgICAgICAgIFJlZ2lzdGVyKiBsb3dBZGRyZXNzKCkg
Y29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIG1fZW5kOwpAQCAtMTQzLDYgKzE0
Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGluc3RhbGxUcmFwc0FmdGVyRnJh
bWUoQ2FsbEZyYW1lKikgeyB9CiAjZW5kaWYKIAorICAgICAgICBib29sIGdyb3coUmVnaXN0ZXIq
IHRvcE9mU3RhY2spOwogICAgICAgICBib29sIGdyb3dTbG93Q2FzZShSZWdpc3RlciopOwogICAg
ICAgICB2b2lkIHNocmluayhSZWdpc3RlciopOwogICAgICAgICB2b2lkIHJlbGVhc2VFeGNlc3ND
YXBhY2l0eSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3Rh
Y2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJl
dGVyL0pTU3RhY2tJbmxpbmVzLmgJKHJldmlzaW9uIDE2MDk0OSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw2ICszMywzNiBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAoraW5saW5lIGJvb2wgSlNTdGFjazo6
ZW5zdXJlQ2FwYWNpdHlGb3IoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCit7CisjaWYgRU5BQkxF
KExMSU5UX0NfTE9PUCkKKyAgICByZXR1cm4gZ3JvdyhuZXdUb3BPZlN0YWNrKTsKKyNlbHNlCisg
ICAgQVNTRVJUKHd0ZlRocmVhZERhdGEoKS5zdGFjaygpLmlzR3Jvd2luZ0Rvd253YXJkKCkpOwor
ICAgIFJlZ2lzdGVyKiB0b3BPZlN0YWNrID0gdG9wT2ZTdGFja0ZvckNhcGFjaXR5Q2hlY2soKTsK
KyAgICBpZiAobmV3VG9wT2ZTdGFjayA+IHRvcE9mU3RhY2spCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHNpemVfdCBuZWVkZWRDYXBhY2l0eSA9ICh0b3BPZlN0YWNrIC0gbmV3VG9wT2ZTdGFj
aykgKiBzaXplb2YoUmVnaXN0ZXIpOworICAgIHJldHVybiBtX3ZtLmlzU2FmZVRvUmVjdXJzZShu
ZWVkZWRDYXBhY2l0eSk7CisjZW5kaWYKK30KKworaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjp0
b3BPZlN0YWNrRm9yQ2FwYWNpdHlDaGVjaygpCit7CisjaWYgIUVOQUJMRShMTElOVF9DX0xPT1Ap
CisgICAgLy8gV2UncmUgdHJ5aW5nIHRvIGdldCBhbiBlc3RpbWF0ZSBvZiB0aGUgdG9wIG9mIHRo
ZSBzdGFjayBmb3IgdGhlIHB1cnBvc2UKKyAgICAvLyBvZiBhIGNhcGFjaXR5IGNoZWNrLiBJZiBt
X3RvcENhbGxGcmFtZSBpcyAwLCB0aGVuIHdlIGNhbid0IGNhbGN1bGF0ZSBhbgorICAgIC8vIGFj
Y3VyYXRlIHRvcCBvZiBzdGFjayB2YWx1ZS4gSnVzdCB1c2UgdGhlIGN1cnJlbnQgc3RhY2sgcG9z
aXRpb24gYXMgYW4KKyAgICAvLyBlc3RpbWF0ZSBmb3IgdGhlIHRvcCBvZiB0aGUgc3RhY2sgZnJv
bSB3aGVyZSBKUyBjb2RlIHdpbGwgc3RhcnQgZXhlY3V0aW5nLgorICAgIC8vIFRoaXMgaXMgY29u
c2VydmF0aXZlLCBidXQgaXQgd2lsbCBiZSBzYWZlLgorICAgIGlmICghbV90b3BDYWxsRnJhbWUp
IHsKKyAgICAgICAgUmVnaXN0ZXIqIHAgPSByZWludGVycHJldF9jYXN0PFJlZ2lzdGVyKj4oJnAp
OworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gdG9wT2ZTdGFj
aygpICsgMTsKK30KKwogaW5saW5lIFJlZ2lzdGVyKiBKU1N0YWNrOjp0b3BPZkZyYW1lRm9yKENh
bGxGcmFtZSogZnJhbWUpCiB7CiAgICAgaWYgKFVOTElLRUxZKCFmcmFtZSkpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAJKHJldmlzaW9u
IDE2MDk0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0MSw4ICs0NDEsMTUgQEAgTExJTlRfU0xPV19QQVRIX0RF
Q0woc3RhY2tfY2hlY2spCiAgICAgZGF0YUxvZ0YoIk51bSB2YXJzID0gJXUuXG4iLCBleGVjLT5j
b2RlQmxvY2soKS0+bV9udW1WYXJzKTsKICAgICBkYXRhTG9nRigiQ3VycmVudCBlbmQgaXMgYXQg
JXAuXG4iLCBleGVjLT52bSgpLmludGVycHJldGVyLT5zdGFjaygpLmVuZCgpKTsKICNlbmRpZgot
ICAgIEFTU0VSVCghZXhlYy0+dm0oKS5pbnRlcnByZXRlci0+c3RhY2soKS5jb250YWluc0FkZHJl
c3MoJmV4ZWMtPnJlZ2lzdGVycygpW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGV4ZWMtPmNvZGVC
bG9jaygpLT5tX251bUNhbGxlZVJlZ2lzdGVycykub2Zmc2V0KCldKSk7Ci0gICAgaWYgKFVOTElL
RUxZKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0
dWFsUmVnaXN0ZXJGb3JMb2NhbChleGVjLT5jb2RlQmxvY2soKS0+bV9udW1DYWxsZWVSZWdpc3Rl
cnMpLm9mZnNldCgpXSkpKSB7CisKKyAgICAvLyBGb3IgSklUIGVuYWJsZWQgYnVpbGRzIHdoaWNo
IHVzZXMgdGhlIEMgc3RhY2ssIHRoZSBzdGFjayBpcyBub3QgZ3Jvd2FibGUuCisgICAgLy8gSGVu
Y2UsIGlmIHdlIGdldCBoZXJlLCB0aGVuIHdlIGtub3cgYSBzdGFjayBvdmVyZmxvdyBpcyBpbW1p
bmVudC4gU28sIGp1c3QKKyAgICAvLyB0aHJvdyB0aGUgU3RhY2tPdmVyZmxvd0Vycm9yIHVuY29u
ZGl0aW9uYWxseS4KKyNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQorICAgIEFTU0VSVCghZXhlYy0+
dm0oKS5pbnRlcnByZXRlci0+c3RhY2soKS5jb250YWluc0FkZHJlc3MoZXhlYy0+dG9wT2ZGcmFt
ZSgpKSk7CisgICAgaWYgKFVOTElLRUxZKCF2bS5pbnRlcnByZXRlci0+c3RhY2soKS5lbnN1cmVD
YXBhY2l0eUZvcihleGVjLT50b3BPZkZyYW1lKCkpKSkKKyNlbmRpZgorICAgIHsKICAgICAgICAg
ZXhlYyA9IGV4ZWMtPmNhbGxlckZyYW1lKCk7CiAgICAgICAgIENvbW1vblNsb3dQYXRoczo6aW50
ZXJwcmV0ZXJUaHJvd0luQ2FsbGVyKGV4ZWMsIGNyZWF0ZVN0YWNrT3ZlcmZsb3dFcnJvcihleGVj
KSk7CiAgICAgICAgIHBjID0gcmV0dXJuVG9UaHJvd0ZvclRocm93bkV4Y2VwdGlvbihleGVjKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5oCShyZXZpc2lvbiAxNjA5NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsMTUgKzY3LDggQEAgQUxXQVlT
X0lOTElORSBpbnQgYXJpdHlDaGVja0ZvcihFeGVjU3RhdAogICAgIGludCBuZWVkZWRTdGFja1Nw
YWNlID0gbWlzc2luZ0FyZ3VtZW50Q291bnQgKyAxOyAvLyBBbGxvdyBzcGFjZSB0byBzYXZlIHRo
ZSBvcmlnaW5hbCByZXR1cm4gUEMuCiAgICAgaW50IHBhZGRlZFN0YWNrU3BhY2UgPSBXVEY6OnJv
dW5kVXBUb011bHRpcGxlT2Yoc3RhY2tBbGlnbm1lbnRSZWdpc3RlcnMoKSwgbmVlZGVkU3RhY2tT
cGFjZSk7CiAKLSNpZiBFTkFCTEUoTExJTlRfQ0xPT1ApCi0gICAgaWYgKCFzdGFjay0+Z3Jvdyhl
eGVjLT5yZWdpc3RlcnMoKSAtIHBhc3NlZFN0YWNrU3BhY2UpKQorICAgIGlmICghc3RhY2stPmVu
c3VyZUNhcGFjaXR5Rm9yKGV4ZWMtPnJlZ2lzdGVycygpIC0gcGFkZGVkU3RhY2tTcGFjZSkpCiAg
ICAgICAgIHJldHVybiAtMTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHN0YWNrKTsKLSAgICBp
ZiAoIWV4ZWMtPnZtKCkuaXNTYWZlVG9SZWN1cnNlKHBhZGRlZFN0YWNrU3BhY2UgKiBzaXplb2Yo
UmVnaXN0ZXIpKSkKLSAgICAgICAgcmV0dXJuIC0xOwotI2VuZGlmIC8vIEVOQUJMRShMTElOVF9D
TE9PUCkKLQogICAgIHJldHVybiBwYWRkZWRTdGFja1NwYWNlIC8gc3RhY2tBbGlnbm1lbnRSZWdp
c3RlcnMoKTsKIH0KIAo=
</data>
<flag name="review"
          id="243500"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>