[libgdata/libgdata-0-6] documents: Fix a memory leak in GDataDocumentsQuery



commit dc199e53e4fbd0c1411c6455a2979c05edf10c08
Author: Philip Withnall <philip tecnocode co uk>
Date:   Thu Dec 9 18:46:39 2010 +0000

    documents: Fix a memory leak in GDataDocumentsQuery

 gdata/services/documents/gdata-documents-query.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/gdata/services/documents/gdata-documents-query.c b/gdata/services/documents/gdata-documents-query.c
index 7133a4c..40e24cb 100644
--- a/gdata/services/documents/gdata-documents-query.c
+++ b/gdata/services/documents/gdata-documents-query.c
@@ -47,6 +47,7 @@
 #include <gdata/services/documents/gdata-documents-text.h>
 #include <gdata/services/documents/gdata-documents-folder.h>
 
+static void gdata_documents_query_dispose (GObject *object);
 static void gdata_documents_query_finalize (GObject *object);
 static void gdata_documents_query_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec);
 static void gdata_documents_query_set_property (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec);
@@ -83,6 +84,7 @@ gdata_documents_query_class_init (GDataDocumentsQueryClass *klass)
 
 	gobject_class->get_property = gdata_documents_query_get_property;
 	gobject_class->set_property = gdata_documents_query_set_property;
+	gobject_class->dispose = gdata_documents_query_dispose;
 	gobject_class->finalize = gdata_documents_query_finalize;
 
 	query_class->get_query_uri = get_query_uri;
@@ -217,6 +219,25 @@ gdata_documents_query_set_property (GObject *object, guint property_id, const GV
 }
 
 static void
+gdata_documents_query_dispose (GObject *object)
+{
+	GList *i;
+	GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY (object)->priv;
+
+	for (i = priv->collaborator_addresses; i != NULL; i = i->next)
+		g_object_unref (i->data);
+	g_list_free (priv->collaborator_addresses);
+	priv->collaborator_addresses = NULL;
+
+	for (i = priv->reader_addresses; i != NULL; i = i->next)
+		g_object_unref (i->data);
+	g_list_free (priv->reader_addresses);
+	priv->reader_addresses = NULL;
+
+	G_OBJECT_CLASS (gdata_documents_query_parent_class)->dispose (object);
+}
+
+static void
 gdata_documents_query_finalize (GObject *object)
 {
 	GDataDocumentsQueryPrivate *priv = GDATA_DOCUMENTS_QUERY_GET_PRIVATE (object);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]