Commit c5036995 authored by scherkus@chromium.org's avatar scherkus@chromium.org

Fix webkit_media::WebMediaPlayerProxy memory leak due to circular refcounting.

BUG=100583

Review URL: http://codereview.chromium.org/8599004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110660 0039d316-1c4b-4281-b951-d872f2087c98
parent 9d603396
...@@ -4696,24 +4696,6 @@ ...@@ -4696,24 +4696,6 @@
fun:_Znw* fun:_Znw*
fun:_ZN25TestingAutomationProvider42NavigateToURLBlockUntilNavigationsCompleteEiRK4GURLiPN3IPC7MessageE fun:_ZN25TestingAutomationProvider42NavigateToURLBlockUntilNavigationsCompleteEiRK4GURLiPN3IPC7MessageE
} }
{
bug_100583
Memcheck:Leak
fun:_Znw*
fun:_ZN11webkit_media18WebMediaPlayerImpl10InitializeEPN6WebKit8WebFrameEb13scoped_refptrINS_16WebVideoRendererEE
...
fun:_ZN6WebKitL20createWebMediaPlayerEPNS_20WebMediaPlayerClientEPN7WebCore5FrameE
fun:_ZN6WebKit24WebMediaPlayerClientImpl12loadInternalEv
fun:_ZN6WebKit24WebMediaPlayerClientImpl4loadERKN3WTF6StringE
fun:_ZN7WebCore11MediaPlayer23loadWithNextMediaEngineEPNS_18MediaPlayerFactoryE
fun:_ZN7WebCore11MediaPlayer4loadERKN3WTF6StringERKNS_11ContentTypeE
fun:_ZN7WebCore16HTMLMediaElement12loadResourceERKNS_4KURLERNS_11ContentTypeE
...
fun:_ZN7WebCore16HTMLMediaElement19selectMediaResourceEv
fun:_ZN7WebCore16HTMLMediaElement12loadInternalEv
fun:_ZN7WebCore16HTMLMediaElement14loadTimerFiredEPNS_5TimerIS0_EE
fun:_ZN7WebCore5TimerINS_16HTMLMediaElementEE5firedEv
}
{ {
bug_100608 bug_100608
Memcheck:Leak Memcheck:Leak
......
...@@ -50,9 +50,7 @@ void WebMediaPlayerProxy::SetVideoRenderer( ...@@ -50,9 +50,7 @@ void WebMediaPlayerProxy::SetVideoRenderer(
} }
WebDataSourceBuildObserverHack WebMediaPlayerProxy::GetBuildObserver() { WebDataSourceBuildObserverHack WebMediaPlayerProxy::GetBuildObserver() {
if (build_observer_.is_null()) return base::Bind(&WebMediaPlayerProxy::AddDataSource, this);
build_observer_ = base::Bind(&WebMediaPlayerProxy::AddDataSource, this);
return build_observer_;
} }
void WebMediaPlayerProxy::Paint(SkCanvas* canvas, const gfx::Rect& dest_rect) { void WebMediaPlayerProxy::Paint(SkCanvas* canvas, const gfx::Rect& dest_rect) {
......
...@@ -103,7 +103,6 @@ class WebMediaPlayerProxy ...@@ -103,7 +103,6 @@ class WebMediaPlayerProxy
base::Lock data_sources_lock_; base::Lock data_sources_lock_;
typedef std::list<scoped_refptr<WebDataSource> > DataSourceList; typedef std::list<scoped_refptr<WebDataSource> > DataSourceList;
DataSourceList data_sources_; DataSourceList data_sources_;
WebDataSourceBuildObserverHack build_observer_;
scoped_refptr<WebVideoRenderer> video_renderer_; scoped_refptr<WebVideoRenderer> video_renderer_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment