diff pidgin/gtkmedia.c @ 25728:c48f5c9600c3

Fixed a ton of memory leaks.
author Mike Ruprecht <maiku@soc.pidgin.im>
date Mon, 18 Aug 2008 06:25:38 +0000
parents eb289e9086bf
children ba609f368dc8
line wrap: on
line diff
--- a/pidgin/gtkmedia.c	Sun Aug 17 07:55:38 2008 +0000
+++ b/pidgin/gtkmedia.c	Mon Aug 18 06:25:38 2008 +0000
@@ -194,7 +194,7 @@
 level_message_cb(GstBus *bus, GstMessage *message, PidginMedia *gtkmedia)
 {
 	const GstStructure *s;
-	const gchar *name;
+	gchar *name;
 
 	gdouble rms_db;
 	gdouble percent;
@@ -207,9 +207,8 @@
 		return TRUE;
 
 	s = gst_message_get_structure(message);
-	name = gst_structure_get_name(s);
 
-	if (strcmp(name, "level"))
+	if (strcmp(gst_structure_get_name(s), "level"))
 		return TRUE;
 
 	list = gst_structure_get_value(s, "rms");
@@ -223,11 +222,13 @@
 	if(percent > 1.0)
 		percent = 1.0;
 
-	if (!strcmp(gst_element_get_name(src), "sendlevel"))	
+	name = gst_element_get_name(src);
+	if (!strcmp(name, "sendlevel"))	
 		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->send_progress), percent);
 	else
 		gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(gtkmedia->priv->recv_progress), percent);
 
+	g_free(name);
 	return TRUE;
 }
 
@@ -465,20 +466,23 @@
 {
 	PurpleMediaSessionType type = purple_media_get_overall_type(media);
 	gchar *message;
+	gchar *name = purple_media_get_screenname(media);
 
 	if (type & PURPLE_MEDIA_AUDIO && type & PURPLE_MEDIA_VIDEO) {
 		message = g_strdup_printf(_("%s wishes to start an audio/video session with you."),
-					  purple_media_get_screenname(media));
+					  name);
 	} else if (type & PURPLE_MEDIA_AUDIO) {
 		message = g_strdup_printf(_("%s wishes to start an audio session with you."),
-					  purple_media_get_screenname(media));
+					  name);
 	} else if (type & PURPLE_MEDIA_VIDEO) {
 		message = g_strdup_printf(_("%s wishes to start a video session with you."),
-					  purple_media_get_screenname(media));
+					  name);
 	} else {
+		g_free(name);
 		return;
 	}
 
+	g_free(name);
 	pidgin_media_emit_message(gtkmedia, message);
 	g_free(message);
 }