Bug 57618

Summary: [GTK] Main loop sources are leaked in RunLoopGtk
Product: WebKit Reporter: Carlos Garcia Campos <cgarcia>
Component: WebKit2Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: Linux   
Attachments:
Description Flags
Patch none

Carlos Garcia Campos
Reported 2011-04-01 05:39:36 PDT
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't free the source, it marks the source as destroyed and decrements the reference counter, even though the source can't be used anymore, it won't be freed until ref counter is 0.
Attachments
Patch (5.45 KB, patch)
2011-04-01 05:51 PDT, Carlos Garcia Campos
no flags
Carlos Garcia Campos
Comment 1 2011-04-01 05:51:25 PDT
Created attachment 87847 [details] Patch Patch to fix the leaks.
Martin Robinson
Comment 2 2011-04-01 10:01:30 PDT
Comment on attachment 87847 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=87847&action=review Great work. Please consider the method name changes below before landing. > Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:95 > +void RunLoop::TimerBase::reset() I think the name clearTimerSource better describes what this one does. > Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:100 > +void RunLoop::TimerBase::resetTimerSource(RunLoop::TimerBase* timer) Please call this one destroyNotifyCallback to make it clear that this is just used as a callback. > Source/WebKit2/Platform/gtk/RunLoopGtk.cpp:105 > +gboolean RunLoop::TimerBase::timerFired(RunLoop::TimerBase* timer) Please call this one timerFiredCallback.
Carlos Garcia Campos
Comment 3 2011-04-04 01:51:16 PDT
Note You need to log in before you can comment on or make changes to this bug.