Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2013-12-13 00:05:04 +0400
committerEion Robb <eion@robbmob.com>2013-12-13 00:05:04 +0400
commitc03b896ee85a8d4e260a767b85a17de559ab948d (patch)
treeeef136dbf4a4da7a1618a8a468dad1f24e21da7a /libskype.c
parentdb65a8734c07de25e539fe0bfd3cfba10f2857f8 (diff)
Squash some memory leaks when generating the 'Get Info' screen. Fixes #230
Diffstat (limited to 'libskype.c')
-rw-r--r--libskype.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/libskype.c b/libskype.c
index 9d6e89a..1a956da 100644
--- a/libskype.c
+++ b/libskype.c
@@ -2198,6 +2198,9 @@ skype_display_buddy_info(PurpleBuddy *buddy)
{
PurpleNotifyUserInfo *user_info;
SkypeBuddy *sbuddy;
+ gchar *timezone = NULL;
+ gchar *buddy_count = NULL;
+ gchar *lastonline = NULL;
if (buddy && buddy->proto_data)
{
@@ -2217,30 +2220,42 @@ skype_display_buddy_info(PurpleBuddy *buddy)
_SKYPE_USER_INFO(sbuddy->language, "Preferred Language");
_SKYPE_USER_INFO(sbuddy->country, "Country");
if (sbuddy->timezone_offset)
- _SKYPE_USER_INFO(g_strdup_printf("UMT %+.1f", sbuddy->timezone_offset),
- "Timezone");
+ {
+ timezone = g_strdup_printf("UMT %+.1f", sbuddy->timezone_offset);
+ _SKYPE_USER_INFO(timezone, "Timezone");
+ }
_SKYPE_USER_INFO(sbuddy->province, "Province");
_SKYPE_USER_INFO(sbuddy->city, "City");
_SKYPE_USER_INFO(sbuddy->phone_mobile, "Phone Mobile");
_SKYPE_USER_INFO(sbuddy->phone_office, "Phone Office");
_SKYPE_USER_INFO(sbuddy->phone_home, "Phone Home");
_SKYPE_USER_INFO(sbuddy->homepage, "Homepage");
+
purple_notify_user_info_add_section_break(user_info);
+
_SKYPE_USER_INFO(sbuddy->is_video_capable?_("Yes"):_("No"), "Video Capable");
_SKYPE_USER_INFO(sbuddy->has_call_equipment?_("Yes"):_("No"), "Call Equipment");
_SKYPE_USER_INFO(sbuddy->is_voicemail_capable?_("Yes"):_("No"), "VoiceMail Capable");
_SKYPE_USER_INFO(sbuddy->can_leave_voicemail?_("Yes"):_("No"), "Can Leave VoiceMail");
_SKYPE_USER_INFO(sbuddy->is_authorized?_("Yes"):_("No"), "Authorization Granted");
_SKYPE_USER_INFO(sbuddy->is_blocked?_("Yes"):_("No"), "Blocked");
- _SKYPE_USER_INFO(g_strdup_printf("%d", sbuddy->number_of_buddies), "Number of buddies");
- _SKYPE_USER_INFO(timestamp_to_datetime(sbuddy->last_online), "Last online");
+ buddy_count = g_strdup_printf("%d", sbuddy->number_of_buddies);
+ _SKYPE_USER_INFO(buddy_count, "Number of buddies");
+
+ lastonline = timestamp_to_datetime(sbuddy->last_online);
+ _SKYPE_USER_INFO(lastonline, "Last online");
+
purple_notify_user_info_add_section_break(user_info);
_SKYPE_USER_INFO(sbuddy->about, "About");
purple_notify_userinfo(purple_account_get_connection(buddy->account),
buddy->name, user_info,
(PurpleNotifyCloseCallback)purple_notify_user_info_destroy, user_info);
+
+ g_free(timezone);
+ g_free(buddy_count);
+ g_free(lastonline);
}
return FALSE;
}