<?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>57618</bug_id>
          
          <creation_ts>2011-04-01 05:39:36 -0700</creation_ts>
          <short_desc>[GTK] Main loop sources are leaked in RunLoopGtk</short_desc>
          <delta_ts>2011-04-04 01:52:30 -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>WebKit2</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>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>377731</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-04-01 05:39:36 -0700</bug_when>
    <thetext>g_source_attach() increments the source ref counter, we should use a GRefPtr for the sources to make sure they are freed. g_source_destroy() doesn&apos;t free the source, it marks the source as destroyed and decrements the reference counter, even though the source can&apos;t be used anymore, it won&apos;t be freed until ref counter is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377733</commentid>
    <comment_count>1</comment_count>
      <attachid>87847</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-04-01 05:51:25 -0700</bug_when>
    <thetext>Created attachment 87847
Patch

Patch to fix the leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377881</commentid>
    <comment_count>2</comment_count>
      <attachid>87847</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-04-01 10:01:30 -0700</bug_when>
    <thetext>Comment on attachment 87847
Patch

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

Great work. Please consider the method name changes below before landing.

&gt; Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:95
&gt; +void RunLoop::TimerBase::reset()

I think the name clearTimerSource better describes what this one does.

&gt; Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:100
&gt; +void RunLoop::TimerBase::resetTimerSource(RunLoop::TimerBase* timer)

Please call this one destroyNotifyCallback to make it clear that this is just used as a callback.

&gt; Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:105
&gt; +gboolean RunLoop::TimerBase::timerFired(RunLoop::TimerBase* timer)

Please call this one timerFiredCallback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378705</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-04-04 01:51:16 -0700</bug_when>
    <thetext>Committed r82805: &lt;http://trac.webkit.org/changeset/82805&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87847</attachid>
            <date>2011-04-01 05:51:25 -0700</date>
            <delta_ts>2011-04-04 01:52:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>run-loop.diff</filename>
            <type>text/plain</type>
            <size>5578</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyMjZlNzI3Li42NGY5MWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTEtMDQtMDEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtd
IE1haW4gbG9vcCBzb3VyY2VzIGFyZSBsZWFrZWQgaW4gUnVuTG9vcEd0aworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc2MTgKKworICAgICAgICAqIFBs
YXRmb3JtL1J1bkxvb3AuaDoKKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6aXNSZXBlYXRp
bmcpOgorICAgICAgICAqIFBsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcDoKKyAgICAgICAgKFJ1
bkxvb3A6On5SdW5Mb29wKTogTWFrZSBzdXJlIG1haW4gbG9vcCBpcyBjdXJyZW50bHkgcnVubmlu
ZworICAgICAgICBiZWZvcmUgY2FsbGluZyBnX21haW5fbG9vcF9xdWl0KCksIFJ1bkxvb3A6OnN0
b3AoKSBtaWdodCBoYXZlCisgICAgICAgIGJlZW4gY2FsbGVkLgorICAgICAgICAoUnVuTG9vcDo6
d2FrZVVwKTogVXNlIGFuIGlkbGUgc291cmNlIHdpdGggZGVmYXVsdCBwcmlvcml0eQorICAgICAg
ICBpbnN0ZWFkIG9mIGEgdGltZW91dCBvbmUgd2l0aCBhIDAgaW50ZXJ2YWwuCisgICAgICAgIChS
dW5Mb29wOjpUaW1lckJhc2U6OnJlc2V0KTogTmV3IG1ldGhvZCB0byByZXNldCB0aGUgdGltZXIu
CisgICAgICAgIChSdW5Mb29wOjpUaW1lckJhc2U6OnJlc2V0VGltZXJTb3VyY2UpOiBEZXN0cm95
IG5vdGlmeSBjYWxsYmFjaworICAgICAgICB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSBzb3VyY2Ug
aXMgZGVzdHJveWVkIHRvIHJlc2V0IHRoZSB0aW1lci4KKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVy
QmFzZTo6dGltZXJGaXJlZCk6IFVzZSB0aGUgY2FsbGJhY2sgZm9yIHJlcGVhdGluZworICAgICAg
ICBhbmQgbm8gcmVwZWF0aW5nIHRpbWVycy4KKyAgICAgICAgKFJ1bkxvb3A6OlRpbWVyQmFzZTo6
c3RhcnQpOiBnX3NvdXJjZV9hdHRhY2goKSBpbmNyZW1lbnRzIHRoZQorICAgICAgICBzb3VyY2Ug
cmVmZXJlbmNlIGNvdW50ZXIsIHNvIHVzZSBHUmVmUHRyIHRvIG1ha2Ugc3VyZSB0aGUgc291cmNl
CisgICAgICAgIGlzIGZyZWVkLgorICAgICAgICAoUnVuTG9vcDo6VGltZXJCYXNlOjpzdG9wKTog
VXNlIHJlc2V0KCkuCisKIDIwMTEtMDMtMzEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHI4
MjYzMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL1J1bkxvb3AuaAppbmRleCBhYTg3NTA2Li44NzZkNGJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9SdW5Mb29wLmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vUnVuTG9vcC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpZiBQTEFURk9STShH
VEspCisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogdHlwZWRlZiBzdHJ1Y3QgX0dT
b3VyY2UgR1NvdXJjZTsKIHR5cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01haW5Mb29wOwogdHlw
ZWRlZiBzdHJ1Y3QgX0dNYWluQ29udGV4dCBHTWFpbkNvbnRleHQ7CkBAIC04NiwxMCArODcsMTIg
QEAgcHVibGljOgogICAgICAgICBpbnQgbV9JRDsKICAgICAgICAgYm9vbCBtX2lzUmVwZWF0aW5n
OwogI2VsaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBzdGF0aWMgZ2Jvb2xlYW4gb25lU2hvdFRp
bWVyRmlyZWQoUnVuTG9vcDo6VGltZXJCYXNlKik7Ci0gICAgICAgIHN0YXRpYyBnYm9vbGVhbiBy
ZXBlYXRpbmdUaW1lckZpcmVkKFJ1bkxvb3A6OlRpbWVyQmFzZSopOwotICAgICAgICB2b2lkIHJl
c2V0VGltZXJTb3VyY2UoKTsKLSAgICAgICAgR1NvdXJjZSogbV90aW1lclNvdXJjZTsKKyAgICAg
ICAgc3RhdGljIGdib29sZWFuIHRpbWVyRmlyZWQoUnVuTG9vcDo6VGltZXJCYXNlKik7CisgICAg
ICAgIHN0YXRpYyB2b2lkIHJlc2V0VGltZXJTb3VyY2UoUnVuTG9vcDo6VGltZXJCYXNlKik7Cisg
ICAgICAgIGdib29sZWFuIGlzUmVwZWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc1JlcGVhdGlu
ZzsgfQorICAgICAgICB2b2lkIHJlc2V0KCk7CisgICAgICAgIEdSZWZQdHI8R1NvdXJjZT4gbV90
aW1lclNvdXJjZTsKKyAgICAgICAgZ2Jvb2xlYW4gbV9pc1JlcGVhdGluZzsKICNlbmRpZgogICAg
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL2d0ay9SdW5Mb29wR3RrLmNwcAppbmRleCA3
MGIwNTUyLi5hOWY2MmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9ndGsv
UnVuTG9vcEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vZ3RrL1J1bkxvb3BH
dGsuY3BwCkBAIC00MSw3ICs0MSw4IEBAIFJ1bkxvb3A6OlJ1bkxvb3AoKQogUnVuTG9vcDo6flJ1
bkxvb3AoKQogewogICAgIGlmIChtX3J1bkxvb3BNYWluKSB7Ci0gICAgICAgIGdfbWFpbl9sb29w
X3F1aXQobV9ydW5Mb29wTWFpbik7CisgICAgICAgIGlmIChnX21haW5fbG9vcF9pc19ydW5uaW5n
KG1fcnVuTG9vcE1haW4pKQorICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdChtX3J1bkxvb3BN
YWluKTsKICAgICAgICAgZ19tYWluX2xvb3BfdW5yZWYobV9ydW5Mb29wTWFpbik7CiAgICAgfQog
CkBAIC03Miw5ICs3MywxMCBAQCBnYm9vbGVhbiBSdW5Mb29wOjpxdWV1ZVdvcmsoUnVuTG9vcCog
cnVuTG9vcCkKIAogdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQogewotICAgIEdTb3VyY2UqIHNvdXJj
ZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KDApOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhz
b3VyY2UsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmsp
LCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLCBtX3J1bkxvb3BDb250ZXh0
KTsKKyAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNl
X25ldygpKTsKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9S
SVRZX0RFRkFVTFQpOworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJl
aW50ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAw
KTsKKyAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250ZXh0KTsK
IAogICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0KTsKIH0KQEAgLTkw
LDIyICs5MiwyMCBAQCBSdW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQogICAgIHN0b3Ao
KTsKIH0KIAotdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnJlc2V0VGltZXJTb3VyY2UoKQordm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnJlc2V0KCkKIHsKICAgICBtX3RpbWVyU291cmNlID0gMDsK
IH0KIAotZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjpvbmVTaG90VGltZXJGaXJlZChSdW5M
b29wOjpUaW1lckJhc2UqIHRpbWVyKQordm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnJlc2V0VGlt
ZXJTb3VyY2UoUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKIHsKLSAgICB0aW1lci0+ZmlyZWQo
KTsKLSAgICB0aW1lci0+cmVzZXRUaW1lclNvdXJjZSgpOwotICAgIHJldHVybiBGQUxTRTsKKyAg
ICB0aW1lci0+cmVzZXQoKTsKIH0KIAotZ2Jvb2xlYW4gUnVuTG9vcDo6VGltZXJCYXNlOjpyZXBl
YXRpbmdUaW1lckZpcmVkKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCitnYm9vbGVhbiBSdW5M
b29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoUnVuTG9vcDo6VGltZXJCYXNlKiB0aW1lcikKIHsK
ICAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1cm4gVFJVRTsKKyAgICByZXR1cm4gdGltZXIt
PmlzUmVwZWF0aW5nKCk7CiB9CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3Vi
bGUgZmlyZUludGVydmFsLCBib29sIHJlcGVhdCkKQEAgLTExMywxMiArMTEzLDExIEBAIHZvaWQg
UnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJlcGVh
dCkKICAgICBpZiAobV90aW1lclNvdXJjZSkKICAgICAgICAgc3RvcCgpOwogCi0gICAgbV90aW1l
clNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0PGd1aW50PihmaXJlSW50
ZXJ2YWwpKTsKLSAgICBpZiAocmVwZWF0KQotICAgICAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2so
bV90aW1lclNvdXJjZSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OlRp
bWVyQmFzZTo6cmVwZWF0aW5nVGltZXJGaXJlZCksIHRoaXMsIDApOwotICAgIGVsc2UKLSAgICAg
ICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UsIHJlaW50ZXJwcmV0X2Nhc3Q8
R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6Om9uZVNob3RUaW1lckZpcmVkKSwgdGhp
cywgMCk7Ci0gICAgZ19zb3VyY2VfYXR0YWNoKG1fdGltZXJTb3VyY2UsIG1fcnVuTG9vcC0+bV9y
dW5Mb29wQ29udGV4dCk7CisgICAgbV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRf
c291cmNlX25ldyhzdGF0aWNfY2FzdDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKKyAg
ICBtX2lzUmVwZWF0aW5nID0gcmVwZWF0OworICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3Rp
bWVyU291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6
VGltZXJCYXNlOjp0aW1lckZpcmVkKSwgdGhpcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVpbnRlcnByZXRfY2FzdDxHRGVzdHJveU5vdGlmeT4oJlJ1bkxvb3A6OlRpbWVyQmFzZTo6cmVz
ZXRUaW1lclNvdXJjZSkpOworICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdldCgp
LCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQpOwogfQogCiB2b2lkIFJ1bkxvb3A6OlRpbWVy
QmFzZTo6c3RvcCgpCkBAIC0xMjYsOCArMTI1LDggQEAgdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6
OnN0b3AoKQogICAgIGlmICghbV90aW1lclNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Z19zb3VyY2VfZGVzdHJveShtX3RpbWVyU291cmNlKTsKLSAgICBtX3RpbWVyU291cmNlID0gMDsK
KyAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOworICAgIHJlc2V0KCk7
CiB9CiAKIGJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjppc0FjdGl2ZSgpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>