<?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>136178</bug_id>
          
          <creation_ts>2014-08-22 16:07:28 -0700</creation_ts>
          <short_desc>TypeSet caches structureIDs even after the corresponding Structure could be GCed</short_desc>
          <delta_ts>2014-08-26 14:24:55 -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>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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1030825</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-08-22 16:07:28 -0700</bug_when>
    <thetext>Currently, caching based on structudeIDs in TypeSet is invalid because it will claim it has seen a Structure that it might not have seen.

This needs to be fixed. The easiest solution is simply to clear all StructureID caches in TypeSet when we garbage collect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031454</commentid>
    <comment_count>1</comment_count>
      <attachid>237167</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2014-08-26 12:45:18 -0700</bug_when>
    <thetext>Created attachment 237167
patch

This clears each TypeSet&apos;s StructureID cache each time GC collects.
It also renamed the member variable on TypeSet to better indicate it&apos;s a cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031471</commentid>
    <comment_count>2</comment_count>
      <attachid>237167</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-08-26 13:42:27 -0700</bug_when>
    <thetext>Comment on attachment 237167
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031481</commentid>
    <comment_count>3</comment_count>
      <attachid>237167</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 14:24:52 -0700</bug_when>
    <thetext>Comment on attachment 237167
patch

Clearing flags on attachment: 237167

Committed r172976: &lt;http://trac.webkit.org/changeset/172976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031482</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-26 14:24:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237167</attachid>
            <date>2014-08-26 12:45:18 -0700</date>
            <delta_ts>2014-08-26 14:24:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>136178-patch.diff</filename>
            <type>text/plain</type>
            <size>5308</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTcyOTcxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE0LTA4LTI2ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFR5cGVTZXQgY2FjaGVzIHN0cnVjdHVyZUlEcyBldmVuIGFmdGVyIHRoZSBjb3JyZXNwb25kaW5n
IFN0cnVjdHVyZSBjb3VsZCBiZSBHQ2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzYxNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHksIFR5cGVTZXQgd2lsbCBuZXZlciByZW1vdmUgU3Ry
dWN0dXJlSURzIGZyb20gaXRzIGNhY2hlLAorICAgICAgICBldmVuIGFmdGVyIHRoZSBjb3JyZXNw
b25kaW5nIFN0cnVjdHVyZXMgY291bGQgYmUgZ2FyYmFnZSBjb2xsZWN0ZWQuCisgICAgICAgIE5v
dywgd2hlbiB0aGUgR2FyYmFnZSBDb2xsZWN0b3IgY29sbGVjdHMsIGFuZCB0eXBlIHByb2ZpbGlu
ZyBpcyAKKyAgICAgICAgZW5hYmxlZCwgdGhlIEdhcmJhZ2UgQ29sbGVjdG9yIHdpbGwgaW52YWxp
ZGF0ZSBhbGwgVHlwZVNldCBjYWNoZXMuCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAg
ICAgICAoSlNDOjpIZWFwOjpjb2xsZWN0KToKKyAgICAgICAgKiBydW50aW1lL1R5cGVTZXQuY3Bw
OgorICAgICAgICAoSlNDOjpUeXBlU2V0OjphZGRUeXBlSW5mb3JtYXRpb24pOgorICAgICAgICAo
SlNDOjpUeXBlU2V0OjppbnZhbGlkYXRlQ2FjaGUpOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZVNl
dC5oOgorICAgICAgICAqIHJ1bnRpbWUvVk0uY3BwOgorICAgICAgICAoSlNDOjpWTTo6aW52YWxp
ZGF0ZVR5cGVTZXRDYWNoZSk6CisgICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDE0LTA4LTI2
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04ocjE3Mjc5NCkgKyAzMkJpdCBidWlsZDogZm9yLWluLWJhc2UtcmVhc3NpZ25lZC1sYXRlci1h
bmQtY2hhbmdlLXN0cnVjdHVyZS5qcyBmYWlsIHdpdGggTmFOIHJlc3VsdApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9uIDE3Mjk2OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05ODIsNiArOTgyLDcg
QEAgdm9pZCBIZWFwOjpjb2xsZWN0KEhlYXBPcGVyYXRpb24gY29sbGVjdAogICAgIGlmICh2bSgp
LT50eXBlUHJvZmlsZXIoKSkgewogICAgICAgICBEZWZlckdDRm9yQVdoaWxlIGF3aGlsZSgqdGhp
cyk7CiAgICAgICAgIHZtKCktPnR5cGVQcm9maWxlckxvZygpLT5wcm9jZXNzTG9nRW50cmllcyhB
U0NJSUxpdGVyYWwoIkdDIikpOworICAgICAgICB2bSgpLT5pbnZhbGlkYXRlVHlwZVNldENhY2hl
KCk7CiAgICAgfQogICAgIAogICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RlZmVycmFsRGVwdGgpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZVNldC5jcHAJKHJldmlzaW9u
IDE3Mjk2OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVTZXQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MSwxMCArNzEsOSBAQCB2b2lkIFR5cGVTZXQ6OmFkZFR5cGVJbmZv
cm1hdGlvbihSdW50aW1lCiAgICAgbV9zZWVuVHlwZXMgPSBtX3NlZW5UeXBlcyB8IHR5cGU7CiAK
ICAgICBpZiAoaWQgJiYgc2hhcGUgJiYgdHlwZSAhPSBUeXBlU3RyaW5nKSB7Ci0gICAgICAgIEFT
U0VSVChtX3N0cnVjdHVyZUlESGlzdG9yeS5pc1ZhbGlkS2V5KGlkKSk7Ci0gICAgICAgIGF1dG8g
aXRlciA9IG1fc3RydWN0dXJlSURIaXN0b3J5LmZpbmQoaWQpOwotICAgICAgICBpZiAoaXRlciA9
PSBtX3N0cnVjdHVyZUlESGlzdG9yeS5lbmQoKSkgewotICAgICAgICAgICAgbV9zdHJ1Y3R1cmVJ
REhpc3Rvcnkuc2V0KGlkLCAxKTsKKyAgICAgICAgQVNTRVJUKG1fc3RydWN0dXJlSURDYWNoZS5p
c1ZhbGlkVmFsdWUoaWQpKTsKKyAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBtX3N0cnVjdHVyZUlE
Q2FjaGUuYWRkKGlkKTsKKyAgICAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KSB7CiAgICAg
ICAgICAgICAvLyBNYWtlIG9uZSBtb3JlIHBhc3MgbWFraW5nIHN1cmUgdGhhdCB3ZSBkb24ndCBo
YXZlIHRoZSBzYW1lIHNoYXBlLiAoU2FtZSBzaGFwZXMgbWF5IGhhdmUgZGlmZmVyZW50IFN0cnVj
dHVyZUlEcykuCiAgICAgICAgICAgICBib29sIGZvdW5kID0gZmFsc2U7CiAgICAgICAgICAgICBT
dHJpbmcgaGFzaCA9IHNoYXBlLT5wcm9wZXJ0eUhhc2goKTsKQEAgLTkyLDYgKzkxLDExIEBAIHZv
aWQgVHlwZVNldDo6YWRkVHlwZUluZm9ybWF0aW9uKFJ1bnRpbWUKICAgICB9CiB9CiAKK3ZvaWQg
VHlwZVNldDo6aW52YWxpZGF0ZUNhY2hlKCkKK3sKKyAgICBtX3N0cnVjdHVyZUlEQ2FjaGUuY2xl
YXIoKTsKK30KKwogU3RyaW5nIFR5cGVTZXQ6OnNlZW5UeXBlcygpIGNvbnN0CiB7CiAgICAgaWYg
KG1fc2VlblR5cGVzID09IFR5cGVOb3RoaW5nKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvVHlwZVNldC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVTZXQuaAkocmV2aXNpb24gMTcyOTY5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZVNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAj
ZGVmaW5lIFR5cGVTZXRfaAogCiAjaW5jbHVkZSAiU3RydWN0dXJlSURUYWJsZS5oIgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTkyLDYgKzkyLDcgQEAgcHVibGljOgogICAgIFR5cGVTZXQo
KTsKICAgICB2b2lkIGFkZFR5cGVJbmZvcm1hdGlvbihSdW50aW1lVHlwZSwgUGFzc1JlZlB0cjxT
dHJ1Y3R1cmVTaGFwZT4sIFN0cnVjdHVyZUlEKTsKICAgICBzdGF0aWMgUnVudGltZVR5cGUgZ2V0
UnVudGltZVR5cGVGb3JWYWx1ZShKU1ZhbHVlKTsKKyAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIFN0cmluZyBzZWVuVHlwZXMoKSBjb25zdDsKICAgICBT
dHJpbmcgZGlzcGxheU5hbWUoKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkFycmF5PFN0cmluZz4+IGFsbFByaW1pdGl2ZVR5cGVOYW1lcygpIGNvbnN0OwpAQCAt
MTA0LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAKICAgICB1aW50MzJfdCBtX3NlZW5UeXBlczsKICAg
ICBWZWN0b3I8UmVmUHRyPFN0cnVjdHVyZVNoYXBlPj4gbV9zdHJ1Y3R1cmVIaXN0b3J5OwotICAg
IEhhc2hNYXA8U3RydWN0dXJlSUQsIHVpbnQ4X3Q+IG1fc3RydWN0dXJlSURIaXN0b3J5OworICAg
IEhhc2hTZXQ8U3RydWN0dXJlSUQ+IG1fc3RydWN0dXJlSURDYWNoZTsKIH07CiAKIH0gLy9uYW1l
c3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lv
biAxNzI5NjkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk0Miw2ICs5NDIsMTggQEAgdm9pZCBWTTo6ZHVtcFR5cGVQcm9maWxlckRh
dGEoKQogICAgIH0KIH0KIAordm9pZCBWTTo6aW52YWxpZGF0ZVR5cGVTZXRDYWNoZSgpCit7Cisg
ICAgUkVMRUFTRV9BU1NFUlQodHlwZVByb2ZpbGVyKCkpOworCisgICAgZm9yIChCYWc8VHlwZUxv
Y2F0aW9uPjo6aXRlcmF0b3IgaXRlciA9IG1fdHlwZUxvY2F0aW9uSW5mby0+YmVnaW4oKTsgISFp
dGVyOyArK2l0ZXIpIHsKKyAgICAgICAgVHlwZUxvY2F0aW9uKiBsb2NhdGlvbiA9ICppdGVyOwor
ICAgICAgICBsb2NhdGlvbi0+bV9pbnN0cnVjdGlvblR5cGVTZXQtPmludmFsaWRhdGVDYWNoZSgp
OworICAgICAgICBpZiAobG9jYXRpb24tPm1fZ2xvYmFsVHlwZVNldCkKKyAgICAgICAgICAgIGxv
Y2F0aW9uLT5tX2dsb2JhbFR5cGVTZXQtPmludmFsaWRhdGVDYWNoZSgpOworICAgIH0KK30KKwog
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk0oVk0qIHZtKQogewogICAgIGxvZ1Nhbml0aXplU3RhY2so
dm0pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCShyZXZpc2lvbiAxNzI5Njkp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCSh3b3JraW5nIGNvcHkpCkBA
IC01MTQsNiArNTE0LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFR5cGVQcm9maWxlciog
dHlwZVByb2ZpbGVyKCkgeyByZXR1cm4gbV90eXBlUHJvZmlsZXIuZ2V0KCk7IH0KICAgICAgICAg
VHlwZUxvY2F0aW9uKiBuZXh0VHlwZUxvY2F0aW9uKCk7CiAgICAgICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgZHVtcFR5cGVQcm9maWxlckRhdGEoKTsKKyAgICAgICAgdm9pZCBpbnZhbGlkYXRl
VHlwZVNldENhY2hlKCk7CiAgICAgICAgIEdsb2JhbFZhcmlhYmxlSUQgZ2V0TmV4dFVuaXF1ZVZh
cmlhYmxlSUQoKSB7IHJldHVybiBtX25leHRVbmlxdWVWYXJpYWJsZUlEKys7IH0KIAogICAgIHBy
aXZhdGU6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>