From b65bc50777a9de7d0f5a16503056435b19140048 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Tue, 18 Sep 2012 19:01:30 +0200 Subject: [PATCH] qmi-port: plug memleak Ensure we clear all allocated client objects when disposing the port. --- src/mm-qmi-port.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mm-qmi-port.c b/src/mm-qmi-port.c index 519c5561..a26fdaba 100644 --- a/src/mm-qmi-port.c +++ b/src/mm-qmi-port.c @@ -351,7 +351,19 @@ static void dispose (GObject *object) { MMQmiPort *self = MM_QMI_PORT (object); + GList *l; + /* Deallocate all clients */ + for (l = self->priv->services; l; l = g_list_next (l)) { + ServiceInfo *info = l->data; + + if (info->client) + g_object_unref (info->client); + } + g_list_free_full (self->priv->services, (GDestroyNotify)g_free); + self->priv->services = NULL; + + /* Clear device object */ g_clear_object (&self->priv->qmi_device); G_OBJECT_CLASS (mm_qmi_port_parent_class)->dispose (object);