Title: [196815] releases/WebKitGTK/webkit-2.12/Source/WebCore
Revision
196815
Author
[email protected]
Date
2016-02-19 03:56:52 -0800 (Fri, 19 Feb 2016)

Log Message

Merge r196809 - [GStreamer] clean-up various leaks
https://bugs.webkit.org/show_bug.cgi?id=154285

Reviewed by Carlos Garcia Campos.

* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webkit_web_audio_src_init): Take full ownership of the GstTask.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::adoptGRef): Null pointer support in ASSERTs.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::initializeGStreamerAndRegisterWebKitElements): Take full ownership of the GstElementFactory pointers.
(WebCore::MediaPlayerPrivateGStreamer::isAvailable): Ditto.

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog (196814 => 196815)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-02-19 11:55:42 UTC (rev 196814)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog	2016-02-19 11:56:52 UTC (rev 196815)
@@ -1,3 +1,18 @@
+2016-02-19  Philippe Normand  <[email protected]>
+
+        [GStreamer] clean-up various leaks
+        https://bugs.webkit.org/show_bug.cgi?id=154285
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
+        (webkit_web_audio_src_init): Take full ownership of the GstTask.
+        * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
+        (WTF::adoptGRef): Null pointer support in ASSERTs.
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::initializeGStreamerAndRegisterWebKitElements): Take full ownership of the GstElementFactory pointers.
+        (WebCore::MediaPlayerPrivateGStreamer::isAvailable): Ditto.
+
 2016-02-18  Andy Estes  <[email protected]>
 
         Revert to dispatching the popstate event synchronously

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp (196814 => 196815)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp	2016-02-19 11:55:42 UTC (rev 196814)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp	2016-02-19 11:56:52 UTC (rev 196815)
@@ -193,7 +193,7 @@
     priv->bus = 0;
 
     g_rec_mutex_init(&priv->mutex);
-    priv->task = gst_task_new(reinterpret_cast<GstTaskFunction>(webKitWebAudioSrcLoop), src, 0);
+    priv->task = adoptGRef(gst_task_new(reinterpret_cast<GstTaskFunction>(webKitWebAudioSrcLoop), src, 0));
 
     gst_task_set_lock(priv->task.get(), &priv->mutex);
 }

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp (196814 => 196815)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp	2016-02-19 11:55:42 UTC (rev 196814)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/GRefPtrGStreamer.cpp	2016-02-19 11:56:52 UTC (rev 196815)
@@ -27,7 +27,7 @@
 
 template <> GRefPtr<GstElement> adoptGRef(GstElement* ptr)
 {
-    ASSERT(!ptr || !g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<GstElement>(ptr, GRefPtrAdopt);
 }
 
@@ -47,7 +47,7 @@
 
 template <> GRefPtr<GstPad> adoptGRef(GstPad* ptr)
 {
-    ASSERT(!ptr || !g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<GstPad>(ptr, GRefPtrAdopt);
 }
 
@@ -67,7 +67,7 @@
 
 template <> GRefPtr<GstPadTemplate> adoptGRef(GstPadTemplate* ptr)
 {
-    ASSERT(!ptr || !g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<GstPadTemplate>(ptr, GRefPtrAdopt);
 }
 
@@ -105,7 +105,7 @@
 
 template <> GRefPtr<GstContext> adoptGRef(GstContext* ptr)
 {
-    ASSERT(!g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!g_object_is_floating(ptr));
     return GRefPtr<GstContext>(ptr, GRefPtrAdopt);
 }
 
@@ -124,7 +124,8 @@
 
 template <> GRefPtr<GstTask> adoptGRef(GstTask* ptr)
 {
-    ASSERT(!g_object_is_floating(G_OBJECT(ptr)));
+    // There is no need to check the object reference is floating here because
+    // gst_task_init() always sinks it.
     return GRefPtr<GstTask>(ptr, GRefPtrAdopt);
 }
 
@@ -144,7 +145,7 @@
 
 template <> GRefPtr<GstBus> adoptGRef(GstBus* ptr)
 {
-    ASSERT(!g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<GstBus>(ptr, GRefPtrAdopt);
 }
 
@@ -164,7 +165,7 @@
 
 template <> GRefPtr<GstElementFactory> adoptGRef(GstElementFactory* ptr)
 {
-    ASSERT(!g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<GstElementFactory>(ptr, GRefPtrAdopt);
 }
 
@@ -317,7 +318,7 @@
 
 template <> GRefPtr<WebKitVideoSink> adoptGRef(WebKitVideoSink* ptr)
 {
-    ASSERT(!ptr || !g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<WebKitVideoSink>(ptr, GRefPtrAdopt);
 }
 
@@ -337,7 +338,7 @@
 
 template <> GRefPtr<WebKitWebSrc> adoptGRef(WebKitWebSrc* ptr)
 {
-    ASSERT(!ptr || !g_object_is_floating(G_OBJECT(ptr)));
+    ASSERT(!ptr || !g_object_is_floating(ptr));
     return GRefPtr<WebKitWebSrc>(ptr, GRefPtrAdopt);
 }
 

Modified: releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (196814 => 196815)


--- releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2016-02-19 11:55:42 UTC (rev 196814)
+++ releases/WebKitGTK/webkit-2.12/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp	2016-02-19 11:56:52 UTC (rev 196815)
@@ -107,14 +107,14 @@
     if (!initializeGStreamer())
         return false;
 
-    GRefPtr<GstElementFactory> srcFactory = gst_element_factory_find("webkitwebsrc");
+    GRefPtr<GstElementFactory> srcFactory = adoptGRef(gst_element_factory_find("webkitwebsrc"));
     if (!srcFactory) {
         GST_DEBUG_CATEGORY_INIT(webkit_media_player_debug, "webkitmediaplayer", 0, "WebKit media player");
         gst_element_register(0, "webkitwebsrc", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_WEB_SRC);
     }
 
 #if ENABLE(MEDIA_SOURCE)
-    GRefPtr<GstElementFactory> WebKitMediaSrcFactory = gst_element_factory_find("webkitmediasrc");
+    GRefPtr<GstElementFactory> WebKitMediaSrcFactory = adoptGRef(gst_element_factory_find("webkitmediasrc"));
     if (!WebKitMediaSrcFactory)
         gst_element_register(0, "webkitmediasrc", GST_RANK_PRIMARY + 100, WEBKIT_TYPE_MEDIA_SRC);
 #endif
@@ -126,7 +126,7 @@
     if (!initializeGStreamerAndRegisterWebKitElements())
         return false;
 
-    GRefPtr<GstElementFactory> factory = gst_element_factory_find("playbin");
+    GRefPtr<GstElementFactory> factory = adoptGRef(gst_element_factory_find("playbin"));
     return factory;
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to