From: Robert Rosengren Date: Mon, 18 Nov 2024 07:47:12 +0000 (+0100) Subject: gstdeviceprovider: fix leaking hidden providers X-Git-Tag: 1.24.10~81 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=31770d3fdac7b6612a3f5f890cd2da04dcc4a099;p=platform%2Fupstream%2Fgstreamer.git gstdeviceprovider: fix leaking hidden providers Free list of hidden providers upon stop and dispose. Part-of: --- diff --git a/subprojects/gstreamer/gst/gstdeviceprovider.c b/subprojects/gstreamer/gst/gstdeviceprovider.c index f073ede51b..896721ba07 100644 --- a/subprojects/gstreamer/gst/gstdeviceprovider.c +++ b/subprojects/gstreamer/gst/gstdeviceprovider.c @@ -180,8 +180,8 @@ gst_device_provider_dispose (GObject * object) gst_object_replace ((GstObject **) & provider->priv->bus, NULL); GST_OBJECT_LOCK (provider); - g_list_free_full (provider->devices, (GDestroyNotify) gst_object_unparent); - provider->devices = NULL; + g_clear_list (&provider->devices, (GDestroyNotify) gst_object_unparent); + g_clear_list (&provider->priv->hidden_providers, (GDestroyNotify) g_free); GST_OBJECT_UNLOCK (provider); G_OBJECT_CLASS (gst_device_provider_parent_class)->dispose (object); @@ -535,8 +535,8 @@ gst_device_provider_stop (GstDeviceProvider * provider) if (klass->stop) klass->stop (provider); GST_OBJECT_LOCK (provider); - g_list_free_full (provider->devices, (GDestroyNotify) gst_object_unparent); - provider->devices = NULL; + g_clear_list (&provider->devices, (GDestroyNotify) gst_object_unparent); + g_clear_list (&provider->priv->hidden_providers, (GDestroyNotify) g_free); GST_OBJECT_UNLOCK (provider); } else if (provider->priv->started_count < 1) { g_critical