[0.6.239] Fix memory leak
[platform/core/multimedia/libmm-player.git] / src / mm_player_priv.c
index 7107352..6b19906 100644 (file)
@@ -1720,7 +1720,8 @@ __mmplayer_gst_create_sink_bin(GstElement *elem, GstPad *pad, GstCaps *ref_caps,
                MMPLAYER_GST_GET_CAPS_INFO(ref_caps, str, name, caps_ret);
                if (!caps_ret)
                        goto ERROR;
-
+               if (caps)
+                       gst_caps_unref(caps);
                caps = gst_caps_ref(ref_caps);
        }
 
@@ -2309,10 +2310,6 @@ __mmplayer_gst_caps_notify_cb(GstPad *pad, GParamSpec *unused, gpointer data)
        MMPLAYER_RETURN_IF_FAIL(unused);
        MMPLAYER_RETURN_IF_FAIL(data);
 
-       caps = gst_pad_get_current_caps(pad);
-       if (!caps)
-               return;
-
        MMPLAYER_GST_GET_CAPS_INFO_FROM_PAD(pad, caps, str, name, caps_ret);
        if (!caps_ret)
                goto ERROR;
@@ -6787,9 +6784,9 @@ _mmplayer_set_next_uri(MMHandleType hplayer, const char *uri, bool is_first_path
                        player->uri_info.uri_list = g_list_append(player->uri_info.uri_list, g_strdup(uri));
                        SECURE_LOGD("add original path : %s", uri);
                } else {
-                       player->uri_info.uri_list = g_list_delete_link(player->uri_info.uri_list, g_list_nth(player->uri_info.uri_list, 0));
-                       player->uri_info.uri_list = g_list_insert(player->uri_info.uri_list, g_strdup(uri), 0);
-
+                       g_free(g_list_nth_data(player->uri_info.uri_list, 0));
+                       player->uri_info.uri_list = g_list_prepend(
+                               g_list_delete_link(player->uri_info.uri_list, player->uri_info.uri_list), g_strdup(uri));
                        SECURE_LOGD("change original path : %s", uri);
                }
        } else {
@@ -7769,7 +7766,7 @@ __mmplayer_release_misc(mmplayer_t *player)
 static void
 __mmplayer_release_misc_post(mmplayer_t *player)
 {
-       char *original_uri = NULL;
+       gchar *original_uri = NULL;
        MMPLAYER_FENTER();
 
        /* player->pipeline is already released before. */
@@ -7806,7 +7803,7 @@ __mmplayer_release_misc_post(mmplayer_t *player)
 
                mm_player_set_attribute((MMHandleType)player, NULL, "profile_uri",
                                original_uri, (original_uri) ? strlen(original_uri) : (0), NULL);
-
+               MMPLAYER_FREEIF(original_uri);
        }
 
        /* clear the audio stream buffer list */