[CherryPick] [GStreamer] Memory leak in AudioFileReader::createBus()
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 22 Mar 2013 08:07:38 +0000 (08:07 +0000)
committerGerrit Code Review <gerrit2@kim11>
Tue, 9 Apr 2013 12:24:02 +0000 (21:24 +0900)
[Title] [GStreamer] Memory leak in AudioFileReader::createBus()
[Issues] NA
[Problem] Memory leak fix in WebAudio.
[Solution] Cherry picked.
[Cherry-Picker] Praveen R Jadhav <praveen.j@samsung.com>

https://bugs.webkit.org/show_bug.cgi?id=112925

Patch by Sudarsana Nagineni <sudarsana.nagineni@intel.com> on 2013-03-22
Reviewed by Martin Robinson.

Adopt the reference returned by g_timeout_source_new()
to fix a memory leak.

No new tests. No change in behavior.

* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
(WebCore::AudioFileReader::createBus):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146571 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Conflicts:

Source/WebCore/ChangeLog

Change-Id: I0277348c94a891a1d3b84fa9f44954a869dbb4c4

Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp

index d4e3d27..0f033e0 100644 (file)
@@ -467,9 +467,9 @@ PassOwnPtr<AudioBus> AudioFileReader::createBus(float sampleRate, bool mixToMono
     m_loop = adoptGRef(g_main_loop_new(context.get(), FALSE));
 
     // Start the pipeline processing just after the loop is started.
-    GSource* timeoutSource = g_timeout_source_new(0);
-    g_source_attach(timeoutSource, context.get());
-    g_source_set_callback(timeoutSource, reinterpret_cast<GSourceFunc>(enteredMainLoopCallback), this, 0);
+    GRefPtr<GSource> timeoutSource = adoptGRef(g_timeout_source_new(0));
+    g_source_attach(timeoutSource.get(), context.get());
+    g_source_set_callback(timeoutSource.get(), reinterpret_cast<GSourceFunc>(enteredMainLoopCallback), this, 0);
 
     g_main_loop_run(m_loop.get());
     g_main_context_pop_thread_default(context.get());