<?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>126188</bug_id>
          
          <creation_ts>2013-12-23 16:15:07 -0800</creation_ts>
          <short_desc>CStack: Fix JSStack::grow(), shrink(), growSlowCase(), and setStackLimit().</short_desc>
          <delta_ts>2014-01-13 17:58:32 -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>125849</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>962630</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-23 16:15:07 -0800</bug_when>
    <thetext>These functions were inappropriately mixing &quot;end&quot; and &quot;top&quot; pointer idioms.  Specifically:

1. growSlowCase() was comparing a newEnd pointer against m_commitTop, and using this to compute the size that the stack needs to grow.

2. shrink() was wrongly computing excess capacity by subtracting baseOfStack() (which is at high memory) from m_commitTop (which points to lower memory). Also, baseOfStack() is an &quot;end&quot; pointer while m_commitTop is a &quot;top&quot; pointer. This is a mismatch.

To fix this and simplify the code a bit, I changed all of these functions to take a newTopOfStack pointer instead of a newEnd pointer, and adjusted their callers where needed to pass the appropropriate pointer values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962631</commentid>
    <comment_count>1</comment_count>
      <attachid>219939</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-23 16:17:48 -0800</bug_when>
    <thetext>Created attachment 219939
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962634</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-12-23 16:22:21 -0800</bug_when>
    <thetext>Landed in r161036 on the jsCStack branch: &lt;http://trac.webkit.org/r161036&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967582</commentid>
    <comment_count>3</comment_count>
      <attachid>219939</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-13 17:43:20 -0800</bug_when>
    <thetext>Comment on attachment 219939
the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>967590</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-01-13 17:58:32 -0800</bug_when>
    <thetext>Thanks.  Review status updated in r161934 on the jsCStack branch: &lt;http://trac.webkit.org/r161934&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219939</attachid>
            <date>2013-12-23 16:17:48 -0800</date>
            <delta_ts>2014-01-13 17:43:20 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-126188.patch</filename>
            <type>text/plain</type>
            <size>5861</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxMDMxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDEzLTEyLTIzICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
U3RhY2s6IEZpeCBKU1N0YWNrOjpncm93KCksIHNocmluaygpLCBncm93U2xvd0Nhc2UoKSwgYW5k
IHNldFN0YWNrTGltaXQoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNjE4OC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGVzZSBmdW5jdGlvbnMgd2VyZSBpbmFwcHJvcHJpYXRlbHkgbWl4aW5nICJl
bmQiIGFuZCAidG9wIiBwb2ludGVyIGlkaW9tcy4KKyAgICAgICAgU3BlY2lmaWNhbGx5OgorICAg
ICAgICAxLiBncm93U2xvd0Nhc2UoKSB3YXMgY29tcGFyaW5nIGEgbmV3RW5kIHBvaW50ZXIgYWdh
aW5zdCBtX2NvbW1pdFRvcCwgYW5kCisgICAgICAgICAgIHVzaW5nIHRoaXMgdG8gY29tcHV0ZSB0
aGUgc2l6ZSB0aGF0IHRoZSBzdGFjayBuZWVkcyB0byBncm93LgorICAgICAgICAyLiBzaHJpbmso
KSB3YXMgd3JvbmdseSBjb21wdXRpbmcgZXhjZXNzIGNhcGFjaXR5IGJ5IHN1YnRyYWN0aW5nCisg
ICAgICAgICAgIGJhc2VPZlN0YWNrKCkgKHdoaWNoIGlzIGF0IGhpZ2ggbWVtb3J5KSBmcm9tIG1f
Y29tbWl0VG9wICh3aGljaCBwb2ludHMKKyAgICAgICAgICAgdG8gbG93ZXIgbWVtb3J5KS4gQWxz
bywgYmFzZU9mU3RhY2soKSBpcyBhbiAiZW5kIiBwb2ludGVyIHdoaWxlCisgICAgICAgICAgIG1f
Y29tbWl0VG9wIGlzIGEgInRvcCIgcG9pbnRlci4gVGhpcyBpcyBhIG1pc21hdGNoLgorCisgICAg
ICAgIFRvIGZpeCB0aGlzIGFuZCBzaW1wbGlmeSB0aGUgY29kZSBhIGJpdCwgSSBjaGFuZ2VkIGFs
bCBvZiB0aGVzZSBmdW5jdGlvbnMKKyAgICAgICAgdG8gdGFrZSBhIG5ld1RvcE9mU3RhY2sgcG9p
bnRlciBpbnN0ZWFkIG9mIGEgbmV3RW5kIHBvaW50ZXIsIGFuZCBhZGp1c3RlZAorICAgICAgICB0
aGVpciBjYWxsZXJzIHdoZXJlIG5lZWRlZCB0byBwYXNzIHRoZSBhcHByb3Byb3ByaWF0ZSBwb2lu
dGVyIHZhbHVlcy4KKworICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpncm93U2xvd0Nhc2UpOgorICAgICAgICAqIGludGVycHJldGVyL0pT
U3RhY2suaDoKKyAgICAgICAgKiBpbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5oOgorICAgICAg
ICAoSlNDOjpKU1N0YWNrOjpwb3BGcmFtZSk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6OnNocmlu
ayk6CisgICAgICAgIChKU0M6OkpTU3RhY2s6Omdyb3cpOgorICAgICAgICAoSlNDOjpKU1N0YWNr
OjpzZXRTdGFja0xpbWl0KToKKwogMjAxMy0xMi0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ1N0YWNrOiBDb3NtZXRpYzogcmVuYW1lIEpTU3RhY2s6Om1fY29t
bWl0RW5kIHRvIG1fY29tbWl0VG9wLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVy
cHJldGVyL0pTU3RhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnRlcnByZXRlci9KU1N0YWNrLmNwcAkocmV2aXNpb24gMTYxMDMwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nywx
OSArNzcsMTkgQEAgSlNTdGFjazo6fkpTU3RhY2soKQogICAgIG1fcmVzZXJ2YXRpb24uZGVhbGxv
Y2F0ZSgpOwogfQogCi1ib29sIEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3RW5k
KQorYm9vbCBKU1N0YWNrOjpncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7
CiAgICAgLy8gSWYgd2UgaGF2ZSBhbHJlYWR5IGNvbW1pdHRlZCBlbm91Z2ggbWVtb3J5IHRvIHNh
dGlzZnkgdGhpcyByZXF1ZXN0LAogICAgIC8vIGp1c3QgdXBkYXRlIHRoZSBlbmQgcG9pbnRlciBh
bmQgcmV0dXJuLgotICAgIGlmIChuZXdFbmQgPj0gbV9jb21taXRUb3ApIHsKLSAgICAgICAgc2V0
U3RhY2tMaW1pdChuZXdFbmQpOworICAgIGlmIChuZXdUb3BPZlN0YWNrID49IG1fY29tbWl0VG9w
KSB7CisgICAgICAgIHNldFN0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAogICAgIC8vIENvbXB1dGUgdGhlIGNodW5rIHNpemUgb2YgYWRkaXRp
b25hbCBtZW1vcnkgdG8gY29tbWl0LCBhbmQgc2VlIGlmIHdlCiAgICAgLy8gaGF2ZSBpdCBpcyBz
dGlsbCB3aXRoaW4gb3VyIGJ1ZGdldC4gSWYgbm90LCB3ZSdsbCBmYWlsIHRvIGdyb3cgYW5kCiAg
ICAgLy8gcmV0dXJuIGZhbHNlLgotICAgIGxvbmcgZGVsdGEgPSByb3VuZFVwQWxsb2NhdGlvblNp
emUocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21taXRUb3ApIC0gcmVpbnRlcnByZXRfY2Fz
dDxjaGFyKj4obmV3RW5kKSwgY29tbWl0U2l6ZSk7CisgICAgbG9uZyBkZWx0YSA9IHJvdW5kVXBB
bGxvY2F0aW9uU2l6ZShyZWludGVycHJldF9jYXN0PGNoYXIqPihtX2NvbW1pdFRvcCkgLSByZWlu
dGVycHJldF9jYXN0PGNoYXIqPihuZXdUb3BPZlN0YWNrKSwgY29tbWl0U2l6ZSk7CiAgICAgaWYg
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAtIGRlbHRhIDw9IHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KG1fdXNlYWJsZVRvcCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApA
QCAtOTgsNyArOTgsNyBAQCBib29sIEpTU3RhY2s6Omdyb3dTbG93Q2FzZShSZWdpc3RlciogbmV3
CiAgICAgbV9yZXNlcnZhdGlvbi5jb21taXQocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4obV9jb21t
aXRUb3ApIC0gZGVsdGEsIGRlbHRhKTsKICAgICBhZGRUb0NvbW1pdHRlZEJ5dGVDb3VudChkZWx0
YSk7CiAgICAgbV9jb21taXRUb3AgPSByZWludGVycHJldF9jYXN0X3B0cjxSZWdpc3Rlcio+KHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KG1fY29tbWl0VG9wKSAtIGRlbHRhKTsKLSAgICBzZXRTdGFj
a0xpbWl0KG5ld0VuZCk7CisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVy
L0pTU3RhY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0
ZXIvSlNTdGFjay5oCShyZXZpc2lvbiAxNjEwMzApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW50ZXJwcmV0ZXIvSlNTdGFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsMTMgKzE2MCwxMyBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKENh
bGxGcmFtZSopIHsgfQogI2VuZGlmCiAKLSAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiB0b3BP
ZlN0YWNrKTsKLSAgICAgICAgYm9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqKTsKLSAgICAgICAg
dm9pZCBzaHJpbmsoUmVnaXN0ZXIqKTsKKyAgICAgICAgYm9vbCBncm93KFJlZ2lzdGVyKiBuZXdU
b3BPZlN0YWNrKTsKKyAgICAgICAgYm9vbCBncm93U2xvd0Nhc2UoUmVnaXN0ZXIqIG5ld1RvcE9m
U3RhY2spOworICAgICAgICB2b2lkIHNocmluayhSZWdpc3RlciogbmV3VG9wT2ZTdGFjayk7CiAg
ICAgICAgIHZvaWQgcmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7CiAgICAgICAgIHZvaWQgYWRkVG9D
b21taXR0ZWRCeXRlQ291bnQobG9uZyk7CiAKLSAgICAgICAgdm9pZCBzZXRTdGFja0xpbWl0KFJl
Z2lzdGVyKiBuZXdFbmQpOworICAgICAgICB2b2lkIHNldFN0YWNrTGltaXQoUmVnaXN0ZXIqIG5l
d1RvcE9mU3RhY2spOwogI2VuZGlmIC8vIEVOQUJMRShMTElOVF9DX0xPT1ApCiAKICAgICAgICAg
dm9pZCBlbmFibGVFcnJvclN0YWNrUmVzZXJ2ZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2tJbmxpbmVzLmgJKHJldmlzaW9uIDE2MTAz
MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrSW5saW5lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsMzMgKzE2NiwzNSBAQCBpbmxpbmUgdm9pZCBKU1N0YWNr
Ojpwb3BGcmFtZShDYWxsRnJhbWUqCiAgICAgLy8gdGhpcyBjYXNlLCB3ZSdyZSBzaHJpbmtpbmcg
YWxsIHRoZSB3YXkgdG8gdGhlIGJlZ2lubmluZyBzaW5jZSB0aGVyZQogICAgIC8vIGFyZSBubyBt
b3JlIGZyYW1lcyBvbiB0aGUgc3RhY2suCiAgICAgaWYgKCFjYWxsZXJGcmFtZSkKLSAgICAgICAg
c2hyaW5rKGJhc2VPZlN0YWNrKCkpOworICAgICAgICBzaHJpbmsoaGlnaEFkZHJlc3MoKSk7CiAK
ICAgICBpbnN0YWxsVHJhcHNBZnRlckZyYW1lKGNhbGxlckZyYW1lKTsKIH0KIAotaW5saW5lIHZv
aWQgSlNTdGFjazo6c2hyaW5rKFJlZ2lzdGVyKiBuZXdFbmQpCitpbmxpbmUgdm9pZCBKU1N0YWNr
OjpzaHJpbmsoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0Vu
ZCA9IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIGlmIChuZXdFbmQgPj0gbV9lbmQpCiAgICAgICAg
IHJldHVybjsKLSAgICBzZXRTdGFja0xpbWl0KG5ld0VuZCk7Ci0gICAgaWYgKG1fZW5kID09IGJh
c2VPZlN0YWNrKCkgJiYgKG1fY29tbWl0VG9wIC0gYmFzZU9mU3RhY2soKSkgPj0gbWF4RXhjZXNz
Q2FwYWNpdHkpCisgICAgc2V0U3RhY2tMaW1pdChuZXdUb3BPZlN0YWNrKTsKKyAgICBpZiAobV9l
bmQgPT0gYmFzZU9mU3RhY2soKSAmJiAoaGlnaEFkZHJlc3MoKSAtIG1fY29tbWl0VG9wKSA+PSBt
YXhFeGNlc3NDYXBhY2l0eSkKICAgICAgICAgcmVsZWFzZUV4Y2Vzc0NhcGFjaXR5KCk7CiB9CiAK
LWlubGluZSBib29sIEpTU3RhY2s6Omdyb3coUmVnaXN0ZXIqIHRvcE9mU3RhY2spCitpbmxpbmUg
Ym9vbCBKU1N0YWNrOjpncm93KFJlZ2lzdGVyKiBuZXdUb3BPZlN0YWNrKQogewotICAgIFJlZ2lz
dGVyKiBuZXdFbmQgPSB0b3BPZlN0YWNrIC0gMTsKKyAgICBSZWdpc3RlciogbmV3RW5kID0gbmV3
VG9wT2ZTdGFjayAtIDE7CiAgICAgaWYgKG5ld0VuZCA+PSBtX2VuZCkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgcmV0dXJuIGdyb3dTbG93Q2FzZShuZXdFbmQpOworICAgIHJldHVybiBncm93
U2xvd0Nhc2UobmV3VG9wT2ZTdGFjayk7CiB9CiAKLWlubGluZSB2b2lkIEpTU3RhY2s6OnNldFN0
YWNrTGltaXQoUmVnaXN0ZXIqIG5ld0VuZCkKK2lubGluZSB2b2lkIEpTU3RhY2s6OnNldFN0YWNr
TGltaXQoUmVnaXN0ZXIqIG5ld1RvcE9mU3RhY2spCiB7CisgICAgUmVnaXN0ZXIqIG5ld0VuZCA9
IG5ld1RvcE9mU3RhY2sgLSAxOwogICAgIG1fZW5kID0gbmV3RW5kOwogI2lmIEVOQUJMRShMTElO
VF9DX0xPT1ApCi0gICAgbV92bS5zZXRKU1N0YWNrTGltaXQobmV3RW5kICsgMSk7CisgICAgbV92
bS5zZXRKU1N0YWNrTGltaXQobmV3VG9wT2ZTdGFjayk7CiAjZW5kaWYKIH0KIAo=
</data>
<flag name="review"
          id="243606"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>