<?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>21924</bug_id>
          
          <creation_ts>2008-10-28 08:48:01 -0700</creation_ts>
          <short_desc>HashTable internal index is not always deleted</short_desc>
          <delta_ts>2008-10-29 03:35:44 -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>PC</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Frederic Marmond">fmarmond</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>fmarmond</cc>
    
    <cc>mario.bensi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96863</commentid>
    <comment_count>0</comment_count>
    <who name="Frederic Marmond">fmarmond</who>
    <bug_when>2008-10-28 08:48:01 -0700</bug_when>
    <thetext>HashTable::createTable() allocates new HashEntry array, but HashTable::deleteTable() is not always called, so this array may not be deleted.

It can then introduce memory leaks, valgrind gives one of around 800ko on a single gmail visit.

My fix is to call the deleteTable() in the HashTable destructor.
It is secured and fixes the memory leak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96864</commentid>
    <comment_count>1</comment_count>
      <attachid>24714</attachid>
    <who name="Frederic Marmond">fmarmond</who>
    <bug_when>2008-10-28 08:49:04 -0700</bug_when>
    <thetext>Created attachment 24714
fix a memory leak on HashTable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96871</commentid>
    <comment_count>2</comment_count>
      <attachid>24714</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-28 09:15:59 -0700</bug_when>
    <thetext>Comment on attachment 24714
fix a memory leak on HashTable

HashTable::deleteTable is called from JSGlobalData destructor to avoid having destructors for static objects, which this patch would introduce.

However, the problem is real - in WebCore/bindings/js/JSDOMBinding.cpp, DOMObjectHashTableMap isn&apos;t properly cleaned up! This only affects worker threads though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96873</commentid>
    <comment_count>3</comment_count>
      <attachid>24719</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-28 09:49:41 -0700</bug_when>
    <thetext>Created attachment 24719
proposed fix

Fix the problem in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96874</commentid>
    <comment_count>4</comment_count>
      <attachid>24719</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-28 09:51:46 -0700</bug_when>
    <thetext>Comment on attachment 24719
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96964</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-29 03:35:44 -0700</bug_when>
    <thetext>Committed revision 37968.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24714</attachid>
            <date>2008-10-28 08:49:04 -0700</date>
            <delta_ts>2008-10-28 09:15:59 -0700</delta_ts>
            <desc>fix a memory leak on HashTable</desc>
            <filename>HashTableClean.patch</filename>
            <type>text/plain</type>
            <size>1160</size>
            <attacher name="Frederic Marmond">fmarmond</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM3OTI1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDgtMTAtMjggIEZyZWRlcmlj
IE1hcm1vbmQgIDxmbWFybW9uZEBwbGV5by5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIEVuc3VyZSB0aGUgSGFzaFRhYmxlIGlzIGNsZWFuIHdoZW4g
aXQgaXMgZGVsZXRlZC4KKworICAgICAgICAqIGtqcy9sb29rdXAuaDoKKyAgICAgICAgKEpTQzo6
SGFzaFRhYmxlOjp+SGFzaFRhYmxlKToKKwogMjAwOC0xMC0yOCAgQWxwIFRva2VyICA8YWxwQG51
YW50aS5jb20+CiAKICAgICAgICAgSW5jbHVkZSBjb3B5cmlnaHQgbGljZW5zZSBmaWxlcyBpbiB0
aGUgYXV0b3Rvb2xzIGRpc3QgdGFyZ2V0LgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL2xvb2t1
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9sb29rdXAuaAkocmV2aXNpb24g
Mzc5MjUpCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvbG9va3VwLmgJKHdvcmtpbmcgY29weSkKQEAg
LTk3LDYgKzk3LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBjb25zdCBIYXNoVGFibGVW
YWx1ZSogdmFsdWVzOyAvLyBGaXhlZCB2YWx1ZXMgZ2VuZXJhdGVkIGJ5IHNjcmlwdC4KICAgICAg
ICAgbXV0YWJsZSBjb25zdCBIYXNoRW50cnkqIHRhYmxlOyAvLyBUYWJsZSBhbGxvY2F0ZWQgYXQg
cnVudGltZS4KIAorICAgICAgICB+SGFzaFRhYmxlKCkKKyAgICAgICAgeworICAgICAgICAgICAg
Ly8gQ2xlYW4gaW50ZXJuYWxzIGJlZm9yZSBsZWF2aW5nLgorICAgICAgICAgICAgZGVsZXRlVGFi
bGUoKTsKKyAgICAgICAgfQorCiAgICAgICAgIEFMV0FZU19JTkxJTkUgdm9pZCBpbml0aWFsaXpl
SWZOZWVkZWQoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhKSBjb25zdAogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAoIXRhYmxlKQo=
</data>
<flag name="review"
          id="11300"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24719</attachid>
            <date>2008-10-28 09:49:41 -0700</date>
            <delta_ts>2008-10-28 09:51:46 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>deleteTable.txt</filename>
            <type>text/plain</type>
            <size>1491</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzkyNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMDgtMTAtMjggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkyNAorICAgICAgICBI
YXNoVGFibGUgaW50ZXJuYWwgaW5kZXggaXMgbm90IGFsd2F5cyBkZWxldGVkCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwOiAoV2ViQ29yZTo6RE9NT2JqZWN0SGFzaFRh
YmxlTWFwOjp+RE9NT2JqZWN0SGFzaFRhYmxlTWFwKToKKyAgICAgICAgQ2FsbCBkZWxldGVUYWJs
ZSBmb3IgSGFzaFRhYmxlcyB0aGF0IGFyZSBiZWluZyBkZWxldGVkLgorCiAyMDA4LTEwLTI4ICBB
bHAgVG9rZXIgIDxhbHBAbnVhbnRpLmNvbT4KIAogICAgICAgICBHVEsrIGJ1aWxkIGZpeCBmb3Ig
b2xkZXIgdmVyc2lvbnMgb2YgUGFuZ28gd2hlcmUgUEFOR09fVkVSU0lPTl9DSEVDSwpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAkocmV2aXNpb24gMzc4OTYpCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2
ICsxNjEsMTMgQEAgY2xhc3MgRE9NT2JqZWN0SGFzaFRhYmxlTWFwIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgRE9NT2JqZWN0SGFzaFRhYmxlTWFwJiBtYXBGb3IoSlNHbG9iYWxEYXRhJik7CiAKKyAg
ICB+RE9NT2JqZWN0SGFzaFRhYmxlTWFwKCkKKyAgICB7CisgICAgICAgIEhhc2hNYXA8Y29uc3Qg
SlNDOjpIYXNoVGFibGUqLCBKU0M6Okhhc2hUYWJsZT46Oml0ZXJhdG9yIG1hcEVuZCA9IG1fbWFw
LmVuZCgpOworICAgICAgICBmb3IgKEhhc2hNYXA8Y29uc3QgSlNDOjpIYXNoVGFibGUqLCBKU0M6
Okhhc2hUYWJsZT46Oml0ZXJhdG9yIGl0ZXIgPSBtX21hcC5iZWdpbigpOyBpdGVyICE9IG1fbWFw
LmVuZCgpOyArK2l0ZXIpCisgICAgICAgICAgICBpdGVyLT5zZWNvbmQuZGVsZXRlVGFibGUoKTsK
KyAgICB9CisKICAgICBjb25zdCBKU0M6Okhhc2hUYWJsZSogZ2V0KGNvbnN0IEpTQzo6SGFzaFRh
YmxlKiBzdGF0aWNUYWJsZSkKICAgICB7CiAgICAgICAgIEhhc2hNYXA8Y29uc3QgSlNDOjpIYXNo
VGFibGUqLCBKU0M6Okhhc2hUYWJsZT46Oml0ZXJhdG9yIGl0ZXIgPSBtX21hcC5maW5kKHN0YXRp
Y1RhYmxlKTsK
</data>
<flag name="review"
          id="11303"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>