<?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>126556</bug_id>
          
          <creation_ts>2014-01-06 17:30:32 -0800</creation_ts>
          <short_desc>Heap::collect shouldn&apos;t be responsible for sweeping</short_desc>
          <delta_ts>2014-01-07 09:36:02 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>ap</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964827</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-06 17:30:32 -0800</bug_when>
    <thetext>Sweeping happens at an awkward time during collection due to the fact that destructors can cause arbitrary reentry into the VM. If we were to delay sweeping until after collection was completely finished then we would no longer have this problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964866</commentid>
    <comment_count>1</comment_count>
      <attachid>220488</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-06 20:53:57 -0800</bug_when>
    <thetext>Created attachment 220488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964879</commentid>
    <comment_count>2</comment_count>
      <attachid>220488</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-06 21:32:00 -0800</bug_when>
    <thetext>Comment on attachment 220488
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=220488&amp;action=review

r=me

&gt; Source/JavaScriptCore/heap/Heap.cpp:734
&gt; +    SamplingRegion samplingRegion(&quot;Garbage Collection: Sweeping&quot;);

Sampling region should probably go before DelayedReleaseScope, so we sample all destructor time, including delayed destructor time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965043</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-01-07 09:36:02 -0800</bug_when>
    <thetext>Committed r161429: &lt;http://trac.webkit.org/changeset/161429&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220488</attachid>
            <date>2014-01-06 20:53:57 -0800</date>
            <delta_ts>2014-01-06 21:32:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126556-20140106205356.patch</filename>
            <type>text/plain</type>
            <size>4466</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxMzk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE0LTAxLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSGVhcDo6Y29sbGVjdCBzaG91bGRuJ3QgYmUgcmVzcG9uc2libGUgZm9yIHN3ZWVw
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY1
NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTd2Vl
cGluZyBoYXBwZW5zIGF0IGFuIGF3a3dhcmQgdGltZSBkdXJpbmcgY29sbGVjdGlvbiBkdWUgdG8g
dGhlIGZhY3QgdGhhdCBkZXN0cnVjdG9ycyBjYW4gCisgICAgICAgIGNhdXNlIGFyYml0cmFyeSBy
ZWVudHJ5IGludG8gdGhlIFZNLiBUaGlzIHBhdGNoIHNlcGFyYXRlcyBjb2xsZWN0aW5nIGFuZCBz
d2VlcGluZywgYW5kIGRlbGF5cyAKKyAgICAgICAgc3dlZXBpbmcgdW50aWwgYWZ0ZXIgY29sbGVj
dGlvbiBoYXMgY29tcGxldGVseSBmaW5pc2hlZC4KKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RBbGxHYXJiYWdlKToKKyAgICAgICAgKEpTQzo6
SGVhcDo6Y29sbGVjdCk6CisgICAgICAgIChKU0M6OkhlYXA6OmNvbGxlY3RJZk5lY2Vzc2FyeU9y
RGVmZXIpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvTWFya2VkU3Bh
Y2UuY3BwOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6c3dlZXApOgorICAgICAgICAqIHJ1
bnRpbWUvR0NBY3Rpdml0eUNhbGxiYWNrLmNwcDoKKyAgICAgICAgKEpTQzo6RGVmYXVsdEdDQWN0
aXZpdHlDYWxsYmFjazo6ZG9Xb3JrKToKKwogMjAxNC0wMS0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdGhlIGRpZmZlcmVudCBmbGF2b3JzIG9mIGlu
dGVnZXIgYXJpdGhtZXRpYyBtb3JlIGV4cGxpY2l0LCBhbmQgZG9uJ3QgcmVseSBvbiAocG9zc2li
bHkgc3RhbGUpIHJlc3VsdHMgb2YgdGhlIGJhY2t3YXJkcyBwcm9wYWdhdG9yIHRvIGRlY2lkZSBp
bnRlZ2VyIGFyaXRobWV0aWMgc2VtYW50aWNzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAkocmV2aXNpb24gMTYxMzg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyNywxNCArNzI3LDE4IEBAIHZvaWQgSGVhcDo6
Y29sbGVjdEFsbEdhcmJhZ2UoKQogewogICAgIGlmICghbV9pc1NhZmVUb0NvbGxlY3QpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKworICAgIGNvbGxlY3QoKTsKKwogICAgIERlbGF5ZWRSZWxlYXNl
U2NvcGUgZGVsYXllZFJlbGVhc2VTY29wZShtX29iamVjdFNwYWNlKTsKLSAgICBjb2xsZWN0KERv
U3dlZXApOworICAgIFNhbXBsaW5nUmVnaW9uIHNhbXBsaW5nUmVnaW9uKCJHYXJiYWdlIENvbGxl
Y3Rpb246IFN3ZWVwaW5nIik7CisgICAgbV9vYmplY3RTcGFjZS5zd2VlcCgpOworICAgIG1fb2Jq
ZWN0U3BhY2Uuc2hyaW5rKCk7CiB9CiAKIHN0YXRpYyBkb3VibGUgbWludXRlID0gNjAuMDsKIAot
dm9pZCBIZWFwOjpjb2xsZWN0KFN3ZWVwVG9nZ2xlIHN3ZWVwVG9nZ2xlKQordm9pZCBIZWFwOjpj
b2xsZWN0KCkKIHsKICNpZiBFTkFCTEUoQUxMT0NBVElPTl9MT0dHSU5HKQogICAgIGRhdGFMb2dG
KCJKU0MgR0Mgc3RhcnRpbmcgY29sbGVjdGlvbi5cbiIpOwpAQCAtNzQyLDcgKzc0Niw3IEBAIHZv
aWQgSGVhcDo6Y29sbGVjdChTd2VlcFRvZ2dsZSBzd2VlcFRvZ2cKICAgICAKICAgICBkb3VibGUg
YmVmb3JlID0gMDsKICAgICBpZiAoT3B0aW9uczo6bG9nR0MoKSkgewotICAgICAgICBkYXRhTG9n
KCJbR0MiLCBzd2VlcFRvZ2dsZSA9PSBEb1N3ZWVwID8gIiAoZWFnZXIgc3dlZXApIiA6ICIiLCAi
OiAiKTsKKyAgICAgICAgZGF0YUxvZygiW0dDOiAiKTsKICAgICAgICAgYmVmb3JlID0gY3VycmVu
dFRpbWVNUygpOwogICAgIH0KICAgICAKQEAgLTgxNSwxMyArODE5LDYgQEAgdm9pZCBIZWFwOjpj
b2xsZWN0KFN3ZWVwVG9nZ2xlIHN3ZWVwVG9nZwogICAgICAgICBtX3ZtLT5jbGVhclNvdXJjZVBy
b3ZpZGVyQ2FjaGVzKCk7CiAgICAgfQogCi0gICAgaWYgKHN3ZWVwVG9nZ2xlID09IERvU3dlZXAp
IHsKLSAgICAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIkdhcmJhZ2UgQ29sbGVj
dGlvbjogU3dlZXBpbmciKTsKLSAgICAgICAgR0NQSEFTRShTd2VlcGluZyk7Ci0gICAgICAgIG1f
b2JqZWN0U3BhY2Uuc3dlZXAoKTsKLSAgICAgICAgbV9vYmplY3RTcGFjZS5zaHJpbmsoKTsKLSAg
ICB9Ci0KICAgICBtX3N3ZWVwZXItPnN0YXJ0U3dlZXBpbmcobV9ibG9ja1NuYXBzaG90KTsKICAg
ICBtX2J5dGVzQWJhbmRvbmVkID0gMDsKIApAQCAtODgwLDcgKzg3Nyw3IEBAIGJvb2wgSGVhcDo6
Y29sbGVjdElmTmVjZXNzYXJ5T3JEZWZlcigpCiAgICAgaWYgKCFzaG91bGRDb2xsZWN0KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBjb2xsZWN0KERvTm90U3dlZXApOworICAg
IGNvbGxlY3QoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0hlYXAuaAkocmV2aXNpb24gMTYxMzg3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksOSArMTM5LDggQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIGJvb2wgaXNTYWZlVG9Db2xsZWN0KCkgY29uc3QgeyByZXR1cm4gbV9pc1Nh
ZmVUb0NvbGxlY3Q7IH0KIAogICAgICAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkIGNvbGxlY3RB
bGxHYXJiYWdlKCk7Ci0gICAgICAgIGVudW0gU3dlZXBUb2dnbGUgeyBEb05vdFN3ZWVwLCBEb1N3
ZWVwIH07CiAgICAgICAgIGJvb2wgc2hvdWxkQ29sbGVjdCgpOwotICAgICAgICB2b2lkIGNvbGxl
Y3QoU3dlZXBUb2dnbGUpOworICAgICAgICB2b2lkIGNvbGxlY3QoKTsKICAgICAgICAgYm9vbCBj
b2xsZWN0SWZOZWNlc3NhcnlPckRlZmVyKCk7IC8vIFJldHVybnMgdHJ1ZSBpZiBpdCBkaWQgY29s
bGVjdC4KIAogICAgICAgICB2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplX3QgY29zdCk7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuY3BwCShyZXZp
c2lvbiAxNjEzODcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsOCBAQCB2b2lkIE1hcmtlZFNwYWNlOjps
YXN0Q2hhbmNlVG9GaW5hbGl6ZSgpCiAKIHZvaWQgTWFya2VkU3BhY2U6OnN3ZWVwKCkKIHsKKyAg
ICBpZiAoT3B0aW9uczo6bG9nR0MoKSkKKyAgICAgICAgZGF0YUxvZygiRWFnZXJseSBzd2VlcGlu
Zy4uLiIpOwogICAgIG1faGVhcC0+c3dlZXBlcigpLT53aWxsRmluaXNoU3dlZXBpbmcoKTsKICAg
ICBmb3JFYWNoQmxvY2s8U3dlZXA+KCk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9HQ0FjdGl2aXR5Q2FsbGJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0dDQWN0aXZpdHlDYWxsYmFjay5jcHAJKHJldmlzaW9uIDE2MTM4
NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0dDQWN0aXZpdHlDYWxsYmFjay5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBEZWZhdWx0R0NBY3Rpdml0
eUNhbGxiYWNrOjpkb1dvcmsoKQogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCi0gICAg
aGVhcC0+Y29sbGVjdChIZWFwOjpEb05vdFN3ZWVwKTsKKyAgICBoZWFwLT5jb2xsZWN0KCk7CiB9
CiAgICAgCiAjaWYgVVNFKENGKQo=
</data>
<flag name="review"
          id="244202"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>