From 362b3e58111935cfbfdcb2c9ab340a746d0d796b Mon Sep 17 00:00:00 2001 From: "mflodman@google.com" Date: Fri, 8 Jul 2011 08:31:27 +0000 Subject: [PATCH] Removing ViE memory leaks in Linux renderer and ViEEncoder. Review URL: http://webrtc-codereview.appspot.com/62003 git-svn-id: http://webrtc.googlecode.com/svn/trunk@182 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../main/source/linux/video_x11_channel.cc | 10 ++++++++-- src/video_engine/main/source/vie_encoder.cc | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/modules/video_render/main/source/linux/video_x11_channel.cc b/src/modules/video_render/main/source/linux/video_x11_channel.cc index 8b2271ca98..fcb9596c7e 100644 --- a/src/modules/video_render/main/source/linux/video_x11_channel.cc +++ b/src/modules/video_render/main/source/linux/video_x11_channel.cc @@ -226,8 +226,13 @@ WebRtc_Word32 VideoX11Channel::ReleaseWindow() __FUNCTION__); CriticalSectionScoped cs(_crit); - return RemoveRenderer(); - + RemoveRenderer(); + if (_display) + { + XCloseDisplay(_display); + _display = NULL; + } + return 0; } WebRtc_Word32 VideoX11Channel::CreateLocalRenderer(WebRtc_Word32 width, @@ -290,6 +295,7 @@ WebRtc_Word32 VideoX11Channel::RemoveRenderer() XShmDetach(_display, &_shminfo); XDestroyImage( _image ); shmdt(_shminfo.shmaddr); + XFreeGC(_display, _gc); return 0; } diff --git a/src/video_engine/main/source/vie_encoder.cc b/src/video_engine/main/source/vie_encoder.cc index 002f05cf50..6cd5b6f0fd 100644 --- a/src/video_engine/main/source/vie_encoder.cc +++ b/src/video_engine/main/source/vie_encoder.cc @@ -153,6 +153,7 @@ ViEEncoder::~ViEEncoder() delete &_rtpRtcp; delete &_callbackCritsect; delete &_dataCritsect; + delete _qmCallback; } // ============================================================================