From 65707a304bb55a546d79be737d9145cd4b891da9 Mon Sep 17 00:00:00 2001 From: Olivier CrĂȘte Date: Fri, 24 Feb 2012 20:34:50 -0500 Subject: Fix memory leaks found by valgrind --- rakia/call-channel.c | 6 ++++-- rakia/call-stream.c | 3 ++- rakia/sip-session.c | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/rakia/call-channel.c b/rakia/call-channel.c index 080427f..89b4887 100644 --- a/rakia/call-channel.c +++ b/rakia/call-channel.c @@ -245,13 +245,15 @@ rakia_call_channel_constructed (GObject *obj) for (i = 0; i < medias->len; i++) { RakiaSipMedia *media = g_ptr_array_index (medias, i); + gchar *name; + if (media) { - const gchar *name = g_strdup_printf ("initial_%s_%u", + name = g_strdup_printf ("initial_%s_%u", sip_media_get_media_type_str (media), i + 1); - new_content (self, name, media, TP_CALL_CONTENT_DISPOSITION_INITIAL); + g_free (name); } } diff --git a/rakia/call-stream.c b/rakia/call-stream.c index 000d1c0..4c4a343 100644 --- a/rakia/call-stream.c +++ b/rakia/call-stream.c @@ -192,8 +192,8 @@ rakia_call_stream_constructed (GObject *object) G_TYPE_STRING, stun_server, G_TYPE_UINT, stun_port, G_TYPE_INVALID)); - g_free (stun_server); } + g_free (stun_server); tp_base_media_call_stream_set_stun_servers (bmcs, stun_array); g_ptr_array_unref (stun_array); @@ -449,6 +449,7 @@ media_remote_candidates_updated_cb (RakiaSipMedia *media, RakiaCallStream *self) tp_call_stream_endpoint_add_new_candidate (priv->endpoint, candidate->component, candidate->ip, candidate->port, info); + g_hash_table_unref (info); } tp_base_media_call_stream_add_endpoint (bmcs, priv->endpoint); diff --git a/rakia/sip-session.c b/rakia/sip-session.c index b52abd0..aeb1506 100644 --- a/rakia/sip-session.c +++ b/rakia/sip-session.c @@ -390,6 +390,22 @@ rakia_sip_session_dispose (GObject *object) tp_clear_object (&self->priv->conn); + if (self->priv->remote_sdp != NULL) + { + self->priv->remote_sdp = NULL; + g_assert (self->priv->home != NULL); + su_home_unref (self->priv->home); + self->priv->home = NULL; + } + + if (self->priv->backup_remote_sdp != NULL) + { + self->priv->backup_remote_sdp = NULL; + g_assert (self->priv->backup_home != NULL); + su_home_unref (self->priv->backup_home); + self->priv->backup_home = NULL; + } + if (G_OBJECT_CLASS (rakia_sip_session_parent_class)->dispose) G_OBJECT_CLASS (rakia_sip_session_parent_class)->dispose (object); -- cgit v1.2.3