<?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>20169</bug_id>
          
          <creation_ts>2008-07-25 03:59:03 -0700</creation_ts>
          <short_desc>Memory allocated with fastMalloc is freed with delete</short_desc>
          <delta_ts>2008-07-29 22:53:21 -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>Linux</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>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Istvan Siket">siket</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>86936</commentid>
    <comment_count>0</comment_count>
    <who name="Istvan Siket">siket</who>
    <bug_when>2008-07-25 03:59:03 -0700</bug_when>
    <thetext>We analyzed WebKit (r35249, qt-linux) with Valgrind and found that memory allocated with fastMalloc is freed with delete.

WebKit\JavaScriptCore\wtf\Vector.h file contains the allocation in the following function:

inline T* Vector&lt;T, inlineCapacity&gt;::releaseBuffer()
{
    T* buffer = m_buffer.releaseBuffer();
    if (inlineCapacity &amp;&amp; !buffer &amp;&amp; m_size) {
        // If the vector had some data, but no buffer to release,
        // that means it was using the inline buffer. In that case,
        // we create a brand new buffer so the caller always gets one.
        size_t bytes = m_size * sizeof(T);
        buffer = static_cast&lt;T*&gt;(fastMalloc(bytes));
        memcpy(buffer, data(), bytes);
    }
    ASSERT(buffer);
    m_size = 0;
    return buffer;
}

And the memory is freed in WebKit\JavaScriptCore\VM\JSPropertyNameIterator.cpp file, in the following function:

void JSPropertyNameIterator::invalidate()
{
    delete m_propertyNames;
    m_object = 0;
    m_propertyNames = 0;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86939</commentid>
    <comment_count>1</comment_count>
      <attachid>22473</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-07-25 06:53:52 -0700</bug_when>
    <thetext>Created attachment 22473
proposed fix

Now, here&apos;s some seriously ugly code... I blame whoever implemented PropertyNameArray::releaseIdentifiers() :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87270</commentid>
    <comment_count>2</comment_count>
      <attachid>22473</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-07-29 10:00:01 -0700</bug_when>
    <thetext>Comment on attachment 22473
proposed fix

typo in the ChangeLog, you mean &quot;Delete the array by calling *invalidata()*&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87363</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-07-29 22:53:21 -0700</bug_when>
    <thetext>Committed revision 35439.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22473</attachid>
            <date>2008-07-25 06:53:52 -0700</date>
            <delta_ts>2008-07-29 10:00:01 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>20169r1_patch.txt</filename>
            <type>text/plain</type>
            <size>1558</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM1MzQyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDgtMDctMjUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDE2OQorICAgICAgICBNZW1vcnkgYWxsb2NhdGVkIHdpdGggZmFzdE1hbGxvYyBpcyBm
cmVlZCB3aXRoIGRlbGV0ZQorCisgICAgICAgICogVk0vSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5j
cHA6CisgICAgICAgIChLSlM6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OmludmFsaWRhdGUpOiBG
cmVlIHRoZSBhcnJheSBwcm9wZXJseS4KKyAgICAgICAgKEtKUzo6SlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcjo6fkpTUHJvcGVydHlOYW1lSXRlcmF0b3IpOiBEZWxldGUgdGhlIGFycmF5IGJ5IGNhbGxp
bmcKKyAgICAgICAgdmFsaWRhdGUoKS4KKwogMjAwOC0wNy0yNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4u
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9WTS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAko
cmV2aXNpb24gMzUzMzgpCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9KU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yOjpKU1Byb3BlcnR5TmFtZUl0CiAKIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6On5KU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKCkKIHsKLSAgICBkZWxldGUgbV9wcm9wZXJ0eU5hbWVzOworICAg
IGludmFsaWRhdGUoKTsKIH0KIAogSlNUeXBlIEpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OnR5cGUo
KSBjb25zdApAQCAtMTI0LDcgKzEyNCwxMSBAQCBKU1ZhbHVlKiBKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yOjpuZXh0KEV4CiAKIHZvaWQgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6aW52YWxpZGF0ZSgp
CiB7Ci0gICAgZGVsZXRlIG1fcHJvcGVydHlOYW1lczsKKyAgICBpZiAobV9wcm9wZXJ0eU5hbWVz
KSB7CisgICAgICAgIGZvciAoSWRlbnRpZmllciogcCA9IG1fcHJvcGVydHlOYW1lczsgcCAhPSBt
X2VuZDsgKytwKQorICAgICAgICAgICAgcC0+fklkZW50aWZpZXIoKTsKKyAgICAgICAgZmFzdEZy
ZWUobV9wcm9wZXJ0eU5hbWVzKTsKKyAgICB9CiAgICAgbV9vYmplY3QgPSAwOwogICAgIG1fcHJv
cGVydHlOYW1lcyA9IDA7CiB9Cg==
</data>
<flag name="review"
          id="9910"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>