<?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>116222</bug_id>
          
          <creation_ts>2013-05-16 07:24:44 -0700</creation_ts>
          <short_desc>[GTK] Fix memory leak in WebKitBackForwardList</short_desc>
          <delta_ts>2013-05-16 19:49: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>WebKitGTK</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>0</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>889809</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-05-16 07:24:44 -0700</bug_when>
    <thetext>Valgrind traces show memory leak in WebKitBackForwardList::webkit_back_forward_list_get_forward_list() where the ImmutableArray is not been released.

The full trace:
    ==9902== 64 bytes in 2 blocks are definitely lost in loss record 5,228 of 8,400
    ==9902==    at 0x4C2A26B: malloc (vg_replace_malloc.c:270)
    ==9902==    by 0xDB174C8: WTF::fastMalloc(unsigned long) (FastMalloc.cpp:286)
    ==9902==    by 0x53A5D30: WTF::ThreadSafeRefCountedBase::operator new(unsigned long) (ThreadSafeRefCounted.h:72)
    ==9902==    by 0x53C578F: WebKit::ImmutableArray::create() (ImmutableArray.h:44)
    ==9902==    by 0x54C5A34: WebKit::WebBackForwardList::backListAsImmutableArrayWithLimit(unsigned int) const (WebBackForwardList.cpp:213)
    ==9902==    by 0x541918D: webkit_back_forward_list_get_back_list_with_limit (WebKitBackForwardList.cpp:255)
    ==9902==    by 0x40ABFF: browserWindowUpdateNavigationActions (BrowserWindow.c:222)
    ==9902==    by 0x40ACDA: backForwadlistChanged (BrowserWindow.c:235)
    ==9902==    by 0x56ACF86: webkit_marshal_VOID__OBJECT_POINTER (WebKitMarshal.cpp:520)
    ==9902==    by 0xC40E09F: g_closure_invoke (gclosure.c:777)
    ==9902==    by 0xC41F82F: signal_emit_unlocked_R (gsignal.c:3584)
    ==9902==    by 0xC427619: g_signal_emit_valist (gsignal.c:3328)
    ==9902==    by 0xC4278A1: g_signal_emit (gsignal.c:3384)
    ==9902==    by 0x5418C21: webkitBackForwardListChanged(_WebKitBackForwardList*, WebKit::WebBackForwardListItem*, WebKit::ImmutableArray*) (WebKitBackForwardList.cpp:144)
    ==9902==    by 0x542E96A: didChangeBackForwardList(OpaqueWKPage const*, OpaqueWKBackForwardListItem const*, OpaqueWKArray const*, void const*) (WebKitLoaderClient.cpp:128)
    ==9902==    by 0x54F7A31: WebKit::WebLoaderClient::didChangeBackForwardList(WebKit::WebPageProxy*, WebKit::WebBackForwardListItem*, WTF::Vector&lt;WTF::RefPtr&lt;WebKit::APIObject&gt;, 0ul, WTF::CrashOnOverflow&gt;*) (W
    ==9902==    by 0x5502525: WebKit::WebPageProxy::didChangeBackForwardList(WebKit::WebBackForwardListItem*, WTF::Vector&lt;WTF::RefPtr&lt;WebKit::APIObject&gt;, 0ul, WTF::CrashOnOverflow&gt;*) (WebPageProxy.cpp:874)
    ==9902==    by 0x54C5301: WebKit::WebBackForwardList::addItem(WebKit::WebBackForwardListItem*) (WebBackForwardList.cpp:130)
    ==9902==    by 0x550B589: WebKit::WebPageProxy::backForwardAddItem(unsigned long) (WebPageProxy.cpp:3026)
    ==9902==    by 0x569044E: void CoreIPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long), unsigned long&gt;(CoreIPC::Arguments1&lt;unsigned long&gt; const&amp;, WebKit::WebPageProxy*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889812</commentid>
    <comment_count>1</comment_count>
      <attachid>201955</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-05-16 07:32:57 -0700</bug_when>
    <thetext>Created attachment 201955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889813</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-16 07:33:53 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>889864</commentid>
    <comment_count>3</comment_count>
      <attachid>201955</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-05-16 09:22:55 -0700</bug_when>
    <thetext>Comment on attachment 201955
Patch

This correct, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890103</commentid>
    <comment_count>4</comment_count>
      <attachid>201955</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-16 19:49:52 -0700</bug_when>
    <thetext>Comment on attachment 201955
Patch

Clearing flags on attachment: 201955

Committed r150232: &lt;http://trac.webkit.org/changeset/150232&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890104</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-16 19:49:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201955</attachid>
            <date>2013-05-16 07:32:57 -0700</date>
            <delta_ts>2013-05-16 19:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116222-20130516163206.patch</filename>
            <type>text/plain</type>
            <size>2664</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjc3ODg4MjNjMDUzODA4
YTFhMjZhNGQyNzIxMDMxMmNlNTAzMTQ1ZC4uYTQ2ZmJlN2RlYzA3OTliMzcxZDUyYTZlZmZiY2Mw
NDlmYjkwN2M0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTA1LTE2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEZp
eCBtZW1vcnkgbGVhayBpbiBXZWJLaXRCYWNrRm9yd2FyZExpc3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjIyMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIER1ZSB0byB0aGUgdXNlIG9mIGxlYWtSZWYo
KSB0aGUgSW1tdXRhYmxlQXJyYXkgaXMgbm90IGJlaW5nIHJlbGVhc2VkCisgICAgICAgIGF1dG9t
YXRpY2FsbHkuIEFkZGluZyBhIGxvY2FsIHZhcmlhYmxlIGluIHRoZSBtZXRob2RzIHRvIG1ha2Ug
c3VyZSB0aGF0CisgICAgICAgIHRoZSBJbW11dGFibGVBcnJheSBpcyBmcmVlZC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5jcHA6CisgICAgICAg
ICh3ZWJraXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfbGlzdF93aXRoX2xpbWl0KTogQWRk
IGxvY2FsIHZhcmlhYmxlCisgICAgICAgIFJlZlB0ciBhbmQgcGFzcyB0aGUgSW1tdXRhYmxlQXJy
YXkgdG8KKyAgICAgICAgV2ViS2l0QmFja0ZvcndhcmRMaXN0Ojp3ZWJraXRCYWNrRm9yd2FyZExp
c3RDcmVhdGVMaXN0KCkgdXNpbmcKKyAgICAgICAgUmVmUHRyOjpnZXQoKS4KKyAgICAgICAgKHdl
YmtpdF9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGltaXQpOiBEaXR0
by4KKwogMjAxMy0wNS0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFdURl9VU0VfUExBVEZPUk1fU1RSQVRFR0lFUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRM
aXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEJhY2tGb3J3
YXJkTGlzdC5jcHAKaW5kZXggZmJmMzAyYWE4ODQzY2RkNDY0ZWE5MGNkNGRkOGQ1MzU0NmE0OWY5
ZC4uNDdhYWE0Y2M4Mjc1NzM2MzZjZTI3MTIwOWIzODQ3YzZlNzRhN2E5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QmFja0ZvcndhcmRMaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRCYWNrRm9yd2Fy
ZExpc3QuY3BwCkBAIC0yNTIsNyArMjUyLDggQEAgR0xpc3QqIHdlYmtpdF9iYWNrX2ZvcndhcmRf
bGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQoV2ViS2l0QmFja0ZvcndhcmRMaXN0KgogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19CQUNLX0ZPUldBUkRfTElTVChiYWNrRm9y
d2FyZExpc3QpLCAwKTsKIAogICAgIFdlYktpdEJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYg
PSBiYWNrRm9yd2FyZExpc3QtPnByaXY7Ci0gICAgcmV0dXJuIHdlYmtpdEJhY2tGb3J3YXJkTGlz
dENyZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0LCBwcml2LT5iYWNrRm9yd2FyZEl0ZW1zLT5iYWNr
TGlzdEFzSW1tdXRhYmxlQXJyYXlXaXRoTGltaXQobGltaXQpLmxlYWtSZWYoKSk7CisgICAgUmVm
UHRyPEltbXV0YWJsZUFycmF5PiBpbW11dGFibGVBcnJheSA9IHByaXYtPmJhY2tGb3J3YXJkSXRl
bXMtPmJhY2tMaXN0QXNJbW11dGFibGVBcnJheVdpdGhMaW1pdChsaW1pdCk7CisgICAgcmV0dXJu
IHdlYmtpdEJhY2tGb3J3YXJkTGlzdENyZWF0ZUxpc3QoYmFja0ZvcndhcmRMaXN0LCBpbW11dGFi
bGVBcnJheS5nZXQoKSk7CiB9CiAKIC8qKgpAQCAtMjgyLDUgKzI4Myw2IEBAIEdMaXN0KiB3ZWJr
aXRfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRoX2xpbWl0KFdlYktpdEJh
Y2tGb3J3YXJkTGlzCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0JBQ0tfRk9S
V0FSRF9MSVNUKGJhY2tGb3J3YXJkTGlzdCksIDApOwogCiAgICAgV2ViS2l0QmFja0ZvcndhcmRM
aXN0UHJpdmF0ZSogcHJpdiA9IGJhY2tGb3J3YXJkTGlzdC0+cHJpdjsKLSAgICByZXR1cm4gd2Vi
a2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChiYWNrRm9yd2FyZExpc3QsIHByaXYtPmJhY2tG
b3J3YXJkSXRlbXMtPmZvcndhcmRMaXN0QXNJbW11dGFibGVBcnJheVdpdGhMaW1pdChsaW1pdCku
bGVha1JlZigpKTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGltbXV0YWJsZUFycmF5ID0g
cHJpdi0+YmFja0ZvcndhcmRJdGVtcy0+Zm9yd2FyZExpc3RBc0ltbXV0YWJsZUFycmF5V2l0aExp
bWl0KGxpbWl0KTsKKyAgICByZXR1cm4gd2Via2l0QmFja0ZvcndhcmRMaXN0Q3JlYXRlTGlzdChi
YWNrRm9yd2FyZExpc3QsIGltbXV0YWJsZUFycmF5LmdldCgpKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>